| Index: gdb/python/py-function.c
|
| diff --git a/gdb/python/py-function.c b/gdb/python/py-function.c
|
| index 59ff65cd9b019705f5d2e88274aba041fab25e1c..843ad30c4454f1f0af5245a98b402edec61f659b 100644
|
| --- a/gdb/python/py-function.c
|
| +++ b/gdb/python/py-function.c
|
| @@ -1,6 +1,6 @@
|
| /* Convenience functions implemented in Python.
|
|
|
| - Copyright (C) 2008-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -29,7 +29,8 @@
|
| #include "expression.h"
|
| #include "language.h"
|
|
|
| -static PyTypeObject fnpy_object_type;
|
| +static PyTypeObject fnpy_object_type
|
| + CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("PyObject");
|
|
|
|
|
|
|
| @@ -38,7 +39,7 @@ convert_values_to_python (int argc, struct value **argv)
|
| {
|
| int i;
|
| PyObject *result = PyTuple_New (argc);
|
| -
|
| +
|
| if (! result)
|
| return NULL;
|
|
|
| @@ -174,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)
|
| @@ -193,23 +200,22 @@ fnpy_init (PyObject *self, PyObject *args, PyObject *kwds)
|
|
|
| /* Initialize internal function support. */
|
|
|
| -void
|
| +int
|
| gdbpy_initialize_functions (void)
|
| {
|
| fnpy_object_type.tp_new = PyType_GenericNew;
|
| if (PyType_Ready (&fnpy_object_type) < 0)
|
| - return;
|
| + return -1;
|
|
|
| - Py_INCREF (&fnpy_object_type);
|
| - PyModule_AddObject (gdb_module, "Function", (PyObject *) &fnpy_object_type);
|
| + return gdb_pymodule_addobject (gdb_module, "Function",
|
| + (PyObject *) &fnpy_object_type);
|
| }
|
|
|
|
|
|
|
| static PyTypeObject fnpy_object_type =
|
| {
|
| - PyObject_HEAD_INIT (NULL)
|
| - 0, /*ob_size*/
|
| + PyVarObject_HEAD_INIT (NULL, 0)
|
| "gdb.Function", /*tp_name*/
|
| sizeof (PyObject), /*tp_basicsize*/
|
| 0, /*tp_itemsize*/
|
|
|