diff options
Diffstat (limited to 'gdb/python/py-function.c')
-rw-r--r-- | gdb/python/py-function.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gdb/python/py-function.c b/gdb/python/py-function.c index e2ba19f..395eeda 100644 --- a/gdb/python/py-function.c +++ b/gdb/python/py-function.c @@ -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) |