/* Python interface to inferior thread event registries.
- Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ Copyright (C) 2009-2020 Free Software Foundation, Inc.
This file is part of GDB.
events_object gdb_py_events;
-static PyTypeObject eventregistry_object_type
+extern PyTypeObject eventregistry_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("eventregistry_object");
/* Implementation of EventRegistry.connect () -> NULL.
eventregistry_object *
create_eventregistry_object (void)
{
- eventregistry_object *eventregistry_obj;
+ gdbpy_ref<eventregistry_object>
+ eventregistry_obj (PyObject_New (eventregistry_object,
+ &eventregistry_object_type));
- eventregistry_obj = PyObject_New (eventregistry_object,
- &eventregistry_object_type);
-
- if (!eventregistry_obj)
+ if (eventregistry_obj == NULL)
return NULL;
eventregistry_obj->callbacks = PyList_New (0);
if (!eventregistry_obj->callbacks)
- {
- Py_DECREF (eventregistry_obj);
- return NULL;
- }
+ return NULL;
- return eventregistry_obj;
+ return eventregistry_obj.release ();
}
static void
(PyObject *) &eventregistry_object_type);
}
-/* Retern the number of listeners currently connected to this
+/* Return the number of listeners currently connected to this
registry. */
int
{ NULL } /* Sentinel. */
};
-static PyTypeObject eventregistry_object_type =
+PyTypeObject eventregistry_object_type =
{
PyVarObject_HEAD_INIT (NULL, 0)
"gdb.EventRegistry", /* tp_name */