summaryrefslogtreecommitdiff
path: root/pidl
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2014-04-07 15:47:02 +0200
committerGünther Deschner <gd@samba.org>2015-03-13 23:58:07 +0100
commit87054a53556e88209e6f8368085c4ec882c7d5a3 (patch)
tree3f61746c90387c1586e40274874ff0e14d89c619 /pidl
parent9564a1f2958dc2d762a7506dc8c24fb9b7991274 (diff)
downloadsamba-87054a53556e88209e6f8368085c4ec882c7d5a3.tar.gz
pidl/python: support HRESULT errors in generated python bindings.
Guenther Signed-off-by: Günther Deschner <gd@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'pidl')
-rw-r--r--pidl/lib/Parse/Pidl/Samba4/Python.pm9
1 files changed, 9 insertions, 0 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 920d10acadc..91201bbd1f1 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -1059,6 +1059,11 @@ sub ConvertObjectFromPythonData($$$$$$;$)
return;
}
+ if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "HRESULT") {
+ $self->pidl("$target = HRES_ERROR(PyInt_AsLong($cvar));");
+ return;
+ }
+
if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "string_array") {
$self->pidl("$target = PyCObject_AsVoidPtr($cvar);");
return;
@@ -1212,6 +1217,10 @@ sub ConvertScalarToPython($$$)
return "PyErr_FromWERROR($cvar)";
}
+ if ($ctypename eq "HRESULT") {
+ return "PyErr_FromHRESULT($cvar)";
+ }
+
if (($ctypename eq "string" or $ctypename eq "nbt_string" or $ctypename eq "nbt_name" or $ctypename eq "wrepl_nbt_name")) {
return "PyString_FromStringOrNULL($cvar)";
}