aboutsummaryrefslogtreecommitdiffstats
path: root/tools/pidl/lib/Parse/Pidl/Samba4/Python.pm
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-09-24 22:02:41 -0700
committerGuy Harris <guy@alum.mit.edu>2017-09-25 05:03:30 +0000
commit4861fbe121301a3e5b519f719f3447290001cb00 (patch)
tree8319a92e2a64b039eef20387489c11b1417dced4 /tools/pidl/lib/Parse/Pidl/Samba4/Python.pm
parent75f78cd49ad0ec63073764926407135732f677ce (diff)
pidl:Python: replace pytalloc_CObject_FromTallocPtr() with pytalloc_GenericObject_reference_ex()
Pick up change from Samba: commit 1ee0c0f8280393c708f23361ebcba0776e8b4d33 Author: Stefan Metzmacher <metze@samba.org> Date: Wed Feb 22 09:07:54 2017 +0100 pidl:Python: replace pytalloc_CObject_FromTallocPtr() with pytalloc_GenericObject_reference_ex() BUG: https://bugzilla.samba.org/show_bug.cgi?id=12601 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Change-Id: I19d04a1a248d35799ec41a79113fe588cd05e3de Reviewed-on: https://code.wireshark.org/review/23718 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'tools/pidl/lib/Parse/Pidl/Samba4/Python.pm')
-rw-r--r--tools/pidl/lib/Parse/Pidl/Samba4/Python.pm20
1 files changed, 11 insertions, 9 deletions
diff --git a/tools/pidl/lib/Parse/Pidl/Samba4/Python.pm b/tools/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 41b50e4973..e7b127d40b 100644
--- a/tools/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/tools/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -1933,12 +1933,12 @@ sub ConvertObjectFromPythonData($$$$$$;$$)
}
if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "string_array") {
- $self->pidl("$target = PyCObject_AsVoidPtr($cvar);");
+ $self->pidl("$target = pytalloc_get_ptr($cvar);");
return;
}
if ($actual_ctype->{TYPE} eq "SCALAR" and $actual_ctype->{NAME} eq "pointer") {
- $self->assign($target, "PyCObject_AsVoidPtr($cvar)");
+ $self->assign($target, "pytalloc_get_ptr($cvar)");
return;
}
@@ -2070,9 +2070,9 @@ sub ConvertObjectFromPython($$$$$$$)
$self->ConvertObjectFromPythonLevel($env, $mem_ctx, $cvar, $ctype, $ctype->{LEVELS}[0], $target, $fail);
}
-sub ConvertScalarToPython($$$)
+sub ConvertScalarToPython($$$$)
{
- my ($self, $ctypename, $cvar) = @_;
+ my ($self, $ctypename, $cvar, $mem_ctx) = @_;
die("expected string for $cvar, not $ctypename") if (ref($ctypename) eq "HASH");
@@ -2127,13 +2127,15 @@ sub ConvertScalarToPython($$$)
}
# Not yet supported
- if ($ctypename eq "string_array") { return "pytalloc_CObject_FromTallocPtr($cvar)"; }
+ if ($ctypename eq "string_array") {
+ return "pytalloc_GenericObject_reference_ex($mem_ctx, $cvar)";
+ }
if ($ctypename eq "ipv4address") { return "PyString_FromStringOrNULL($cvar)"; }
if ($ctypename eq "ipv6address") { return "PyString_FromStringOrNULL($cvar)"; }
if ($ctypename eq "dnsp_name") { return "PyString_FromStringOrNULL($cvar)"; }
if ($ctypename eq "dnsp_string") { return "PyString_FromStringOrNULL($cvar)"; }
if ($ctypename eq "pointer") {
- return "pytalloc_CObject_FromTallocPtr($cvar)";
+ return "pytalloc_GenericObject_reference_ex($mem_ctx, $cvar)";
}
die("Unknown scalar type $ctypename");
@@ -2153,11 +2155,11 @@ sub ConvertObjectToPythonData($$$$$;$$)
}
if ($actual_ctype->{TYPE} eq "ENUM") {
- return $self->ConvertScalarToPython(Parse::Pidl::Typelist::enum_type_fn($actual_ctype), $cvar);
+ return $self->ConvertScalarToPython(Parse::Pidl::Typelist::enum_type_fn($actual_ctype), $cvar, $mem_ctx);
} elsif ($actual_ctype->{TYPE} eq "BITMAP") {
- return $self->ConvertScalarToPython(Parse::Pidl::Typelist::bitmap_type_fn($actual_ctype), $cvar);
+ return $self->ConvertScalarToPython(Parse::Pidl::Typelist::bitmap_type_fn($actual_ctype), $cvar, $mem_ctx);
} elsif ($actual_ctype->{TYPE} eq "SCALAR") {
- return $self->ConvertScalarToPython($actual_ctype->{NAME}, $cvar);
+ return $self->ConvertScalarToPython($actual_ctype->{NAME}, $cvar, $mem_ctx);
} elsif ($actual_ctype->{TYPE} eq "UNION") {
my $ctype_name = $self->use_type_variable($ctype);
unless (defined($ctype_name)) {