* python/py-function.c (fnpy_init): Decref result of
authorTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:12:04 +0000 (20:12 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:12:04 +0000 (20:12 +0000)
PyObject_GetAttrString.

gdb/ChangeLog
gdb/python/py-function.c

index b4fb20c..443adaf 100644 (file)
@@ -1,5 +1,10 @@
 2013-05-20  Tom Tromey  <tromey@redhat.com>
 
+       * python/py-function.c (fnpy_init): Decref result of
+       PyObject_GetAttrString.
+
+2013-05-20  Tom Tromey  <tromey@redhat.com>
+
        * python/py-threadevent.c (get_event_thread): Use
        CPYCHECKER_RETURNS_BORROWED_REF.
        * python/python-internal.h (CPYCHECKER_RETURNS_BORROWED_REF):
index e2ba19f..395eeda 100644 (file)
@@ -175,14 +175,20 @@ fnpy_init (PyObject *self, PyObject *args, PyObject *kwds)
   if (PyObject_HasAttrString (self, "__doc__"))
     {
       PyObject *ds_obj = PyObject_GetAttrString (self, "__doc__");
-      if (ds_obj && gdbpy_is_string (ds_obj))
+      if (ds_obj != NULL)
        {
-         docstring = python_string_to_host_string (ds_obj);
-         if (docstring == NULL)
+         if (gdbpy_is_string (ds_obj))
            {
-             Py_DECREF (self);
-             return -1;
+             docstring = python_string_to_host_string (ds_obj);
+             if (docstring == NULL)
+               {
+                 Py_DECREF (self);
+                 Py_DECREF (ds_obj);
+                 return -1;
+               }
            }
+
+         Py_DECREF (ds_obj);
        }
     }
   if (! docstring)