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

Reply via email to