[pygobject/gsoc2009: 146/160] Keep the reference count right



commit 17ebe0e2b421fc735b8dbd3b8eaf94b36ac2c89d
Author: Simon van der Linden <svdlinden src gnome org>
Date:   Wed Aug 12 17:07:27 2009 +0200

    Keep the reference count right

 gobject/pygobject.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/gobject/pygobject.c b/gobject/pygobject.c
index 7f71ccc..c772fca 100644
--- a/gobject/pygobject.c
+++ b/gobject/pygobject.c
@@ -899,10 +899,13 @@ pygobject_lookup_class(GType gtype)
             pygi_import();
             py_type = (PyTypeObject *)pygi_type_find_by_gi_info(info);
             g_base_info_unref(info);
-            if (py_type)
+            if (py_type != NULL) {
+                /* Note: The type is registered, so at least a reference remains. */
+                Py_DECREF((PyObject *)py_type);
                 return py_type;
-            else
+            } else {
                 PyErr_Clear();
+            }
         }
 
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]