svn commit: samba r2994 - in branches/SAMBA_4_0/source: build/pidl
scripting/swig
tpot at samba.org
tpot at samba.org
Fri Oct 15 12:21:49 GMT 2004
Author: tpot
Date: 2004-10-15 12:21:49 +0000 (Fri, 15 Oct 2004)
New Revision: 2994
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=2994&nolog=1
Log:
More cleanups. Move the generation of NTSTATUS and WERROR exceptions
from inside a swig %exception block and into the argout typemap. This
will allow us to wrap functions that don't require exception handling, and
also get rid of some ugly code in dcerpc.i
Modified:
branches/SAMBA_4_0/source/build/pidl/swig.pm
branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/swig.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/swig.pm 2004-10-15 11:11:02 UTC (rev 2993)
+++ branches/SAMBA_4_0/source/build/pidl/swig.pm 2004-10-15 12:21:49 UTC (rev 2994)
@@ -346,9 +346,26 @@
} else {
$result .= "\tPyDict_SetItemString(temp, \"result\", PyLong_FromLong(W_ERROR_V(arg3->out.result)));\n";
}
- $result .= "\tresultobj = temp;\n";
- $result .= "\ttalloc_free(mem_ctx);\n";
+ $result .= "\n";
+
+ $result .= "\tresultobj = temp;\n\n";
+
+
+
+ $result .= "\tif (NT_STATUS_IS_ERR(result)) {\n";
+ $result .= "\t\tset_ntstatus_exception(NT_STATUS_V(result));\n";
+ $result .= "\t\tgoto fail;\n";
+ $result .= "\t}\n";
+
+ if (!($fn->{RETURN_TYPE} eq "NTSTATUS")) {
+ $result .= "\tif (!W_ERROR_IS_OK(arg3->out.result) && \n";
+ $result .= "\t\t!(W_ERROR_EQUAL(arg3->out.result, WERR_INSUFFICIENT_BUFFER))) {\n";
+ $result .= "\t\tset_werror_exception(W_ERROR_V(arg3->out.result));\n";
+ $result .= "\t\tgoto fail;\n";
+ $result .= "\t}\n";
+ }
+
$result .= "}\n\n";
# Function definitions
Modified: branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/dcerpc.i 2004-10-15 11:11:02 UTC (rev 2993)
+++ branches/SAMBA_4_0/source/scripting/swig/dcerpc.i 2004-10-15 12:21:49 UTC (rev 2994)
@@ -347,40 +347,8 @@
const char *password);
%include "librpc/gen_ndr/misc.i"
-
-/* Wrapped functions returning NTSTATUS */
-
-%exception {
- $action
-
- if (NT_STATUS_IS_ERR(result)) {
- set_ntstatus_exception(NT_STATUS_V(result));
- return NULL;
- }
-}
-
%include "librpc/gen_ndr/lsa.i"
%include "librpc/gen_ndr/samr.i"
-
-/* Wrapped functions returning WERROR */
-
-%exception {
- $action
-
- if (NT_STATUS_IS_ERR(result)) {
- set_ntstatus_exception(NT_STATUS_V(result));
- return NULL;
- }
-
- /* Emulate NT_STATUS_IS_ERR() */
-
- if (!W_ERROR_IS_OK(arg3->out.result) &&
- !(W_ERROR_EQUAL(arg3->out.result, WERR_INSUFFICIENT_BUFFER))) {
- set_werror_exception(W_ERROR_V(arg3->out.result));
- return NULL;
- }
-}
-
%include "librpc/gen_ndr/winreg.i"
%include "librpc/gen_ndr/spoolss.i"
More information about the samba-cvs
mailing list