diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-01-14 18:01:54 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-01-14 19:53:08 +0100 |
commit | 994e43e9ebd3922f2c3378edf0e73e912815230a (patch) | |
tree | 67b6ff2bdb2d491d3d85d0ac365712f9629c3dd7 /source4/pidl/lib | |
parent | 860106b3f426a06eed6a681fa839dd89f339ba9a (diff) | |
download | samba-994e43e9ebd3922f2c3378edf0e73e912815230a.tar.gz samba-994e43e9ebd3922f2c3378edf0e73e912815230a.tar.bz2 samba-994e43e9ebd3922f2c3378edf0e73e912815230a.zip |
python: Don't try to free const pointers.
(This used to be commit b4754f4683e67a940f18a88e45c0878259f45b97)
Diffstat (limited to 'source4/pidl/lib')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba4/Python.pm | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm b/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm index 84b3405bb9..73442be59d 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -203,7 +203,11 @@ sub PythonStruct($$$$) $self->pidl("if (!strcmp(name, \"$e->{NAME}\")) {"); my $varname = "object->$e->{NAME}"; $self->indent; - if ($e->{ORIGINAL}->{POINTERS} > 0) { + my $l = $e->{LEVELS}[0]; + my $nl = GetNextLevel($e, $l); + if ($l->{TYPE} eq "POINTER" and + not ($nl->{TYPE} eq "ARRAY" and ($nl->{IS_FIXED} or is_charset_array($e, $nl))) and + not ($nl->{TYPE} eq "SCALAR" and $nl->{TYPE} eq "string")) { $self->pidl("talloc_free($varname);"); } $self->ConvertObjectFromPython($env, $mem_ctx, $e, "value", $varname, "return -1;"); |