From 700fcfbc63c4b20fcb35dc3c7ef50ed20117cf74 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 25 Jun 2010 00:16:18 +0200 Subject: pidl/python: Make sure to always increment reference counter when using Py_None. --- pidl/lib/Parse/Pidl/Samba4/Python.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'pidl/lib/Parse/Pidl/Samba4/Python.pm') diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index 4fb8f6be2c..4687a535c4 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -372,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 @@ -391,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"; } -- cgit