The branch, master has been updated via 700fcfb... pidl/python: Make sure to always increment reference counter when using Py_None. via 4a75cb9... pidl/python: Increment reference counter on Py_None to prevent us from accidentally deallocating it. from 7e49a58... s4 torture: Warn on NOT_IMPLEMENTED in addition to NOT_SUPPORTED for RAW-QFILEINFO
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 700fcfbc63c4b20fcb35dc3c7ef50ed20117cf74 Author: Jelmer Vernooij <jel...@samba.org> Date: Fri Jun 25 00:16:18 2010 +0200 pidl/python: Make sure to always increment reference counter when using Py_None. commit 4a75cb9cd5dfdd347803d03acbc0533c2e7e89cc Author: Jelmer Vernooij <jel...@samba.org> Date: Thu Jun 24 23:17:51 2010 +0200 pidl/python: Increment reference counter on Py_None to prevent us from accidentally deallocating it. ----------------------------------------------------------------------- Summary of changes: pidl/lib/Parse/Pidl/Samba4/Python.pm | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) Changeset truncated at 500 lines: diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index 390ee27..4687a53 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -126,6 +126,7 @@ sub FromUnionToPythonFunction($$$$) $self->ConvertObjectToPython($mem_ctx, {}, $e, "$name->$e->{NAME}", "ret", "return NULL;"); } else { $self->pidl("ret = Py_None;"); + $self->pidl("Py_INCREF(ret);"); } $self->pidl("return ret;"); @@ -371,7 +372,7 @@ sub PythonFunctionUnpackOut($$$) $self->pidl("static PyObject *$outfnname(struct $fn->{NAME} *r)"); $self->pidl("{"); $self->indent; - $self->pidl("PyObject *result = Py_None;"); + $self->pidl("PyObject *result;"); foreach my $e (@{$fn->{ELEMENTS}}) { next unless (grep(/out/,@{$e->{DIRECTION}})); next if (($metadata_args->{in}->{$e->{NAME}} and grep(/in/, @{$e->{DIRECTION}})) or @@ -390,6 +391,8 @@ sub PythonFunctionUnpackOut($$$) $self->pidl("result = PyTuple_New($result_size);"); $signature .= "("; } elsif ($result_size == 0) { + $self->pidl("result = Py_None;"); + $self->pidl("Py_INCREF(result);"); $signature .= "None"; } @@ -1052,6 +1055,7 @@ sub ConvertObjectToPythonLevel($$$$$$) $self->pidl("if ($var_name == NULL) {"); $self->indent; $self->pidl("$py_var = Py_None;"); + $self->pidl("Py_INCREF($py_var);"); $self->deindent; $self->pidl("} else {"); $self->indent; -- Samba Shared Repository