mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
gdb/python: accept gdbpy_ref in init helpers and return bool
Passing 'gdbpy_ref<> &' instead of raw 'PyObject *' to init helpers makes ownership of PyObject clearer at call sites, and removes unnecessary '.get()' calls. Changing the return type from 'int' to 'bool' improves readability and better expresses the success/failure semantics. Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
parent
072ea1fa0d
commit
83d7283c4b
2 changed files with 23 additions and 26 deletions
|
|
@ -198,36 +198,36 @@ objfpy_dealloc (PyObject *o)
|
|||
/* Initialize an objfile_object.
|
||||
The result is a boolean indicating success. */
|
||||
|
||||
static int
|
||||
objfpy_initialize (objfile_object *self)
|
||||
static bool
|
||||
objfpy_initialize (gdbpy_ref<objfile_object> &self)
|
||||
{
|
||||
self->objfile = NULL;
|
||||
|
||||
self->dict = PyDict_New ();
|
||||
if (self->dict == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->printers = PyList_New (0);
|
||||
if (self->printers == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->frame_filters = PyDict_New ();
|
||||
if (self->frame_filters == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->frame_unwinders = PyList_New (0);
|
||||
if (self->frame_unwinders == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->type_printers = PyList_New (0);
|
||||
if (self->type_printers == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->xmethods = PyList_New (0);
|
||||
if (self->xmethods == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
|
|
@ -235,11 +235,8 @@ objfpy_new (PyTypeObject *type, PyObject *args, PyObject *keywords)
|
|||
{
|
||||
gdbpy_ref<objfile_object> self ((objfile_object *) type->tp_alloc (type, 0));
|
||||
|
||||
if (self != NULL)
|
||||
{
|
||||
if (!objfpy_initialize (self.get ()))
|
||||
return NULL;
|
||||
}
|
||||
if (self != nullptr && !objfpy_initialize (self))
|
||||
return nullptr;
|
||||
|
||||
return (PyObject *) self.release ();
|
||||
}
|
||||
|
|
@ -682,7 +679,7 @@ objfile_to_objfile_object (struct objfile *objfile)
|
|||
((objfile_object *) PyObject_New (objfile_object, &objfile_object_type));
|
||||
if (object == NULL)
|
||||
return NULL;
|
||||
if (!objfpy_initialize (object.get ()))
|
||||
if (!objfpy_initialize (object))
|
||||
return NULL;
|
||||
|
||||
object->objfile = objfile;
|
||||
|
|
|
|||
|
|
@ -166,40 +166,40 @@ pspy_dealloc (PyObject *self)
|
|||
/* Initialize a pspace_object.
|
||||
The result is a boolean indicating success. */
|
||||
|
||||
static int
|
||||
pspy_initialize (pspace_object *self)
|
||||
static bool
|
||||
pspy_initialize (gdbpy_ref<pspace_object> &self)
|
||||
{
|
||||
self->pspace = NULL;
|
||||
|
||||
self->dict = PyDict_New ();
|
||||
if (self->dict == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->printers = PyList_New (0);
|
||||
if (self->printers == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->frame_filters = PyDict_New ();
|
||||
if (self->frame_filters == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->frame_unwinders = PyList_New (0);
|
||||
if (self->frame_unwinders == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->type_printers = PyList_New (0);
|
||||
if (self->type_printers == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->xmethods = PyList_New (0);
|
||||
if (self->xmethods == NULL)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
self->missing_file_handlers = PyList_New (0);
|
||||
if (self->missing_file_handlers == nullptr)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
PyObject *
|
||||
|
|
@ -591,7 +591,7 @@ pspace_to_pspace_object (struct program_space *pspace)
|
|||
((pspace_object *) PyObject_New (pspace_object, &pspace_object_type));
|
||||
if (object == NULL)
|
||||
return NULL;
|
||||
if (!pspy_initialize (object.get ()))
|
||||
if (!pspy_initialize (object))
|
||||
return NULL;
|
||||
|
||||
object->pspace = pspace;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue