From 4861fbe121301a3e5b519f719f3447290001cb00 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sun, 24 Sep 2017 22:02:41 -0700 Subject: pidl:Python: replace pytalloc_CObject_FromTallocPtr() with pytalloc_GenericObject_reference_ex() Pick up change from Samba: commit 1ee0c0f8280393c708f23361ebcba0776e8b4d33 Author: Stefan Metzmacher 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 Reviewed-by: Andrew Bartlett Change-Id: I19d04a1a248d35799ec41a79113fe588cd05e3de Reviewed-on: https://code.wireshark.org/review/23718 Reviewed-by: Guy Harris --- tools/pidl/lib/Parse/Pidl/Samba4/Python.pm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'tools/pidl/lib/Parse/Pidl/Samba4/Python.pm') 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)) { -- cgit v1.2.3