Change objfile_to_objfile_object to return a new reference
This changes objfile_to_objfile_object to return a new references and fixes up all the uses. gdb/ChangeLog 2018-09-16 Tom Tromey <tom@tromey.com> * python/py-progspace.c (pspy_get_objfiles): Update. * python/python-internal.h (objfile_to_objfile_object): Change return type. * python/py-newobjfileevent.c (create_new_objfile_event_object): Update. * python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): Update. * python/python.c (gdbpy_get_current_objfile): Update. (gdbpy_objfiles): Update. * python/py-objfile.c (objfpy_get_owner, gdbpy_lookup_objfile): Update. (objfile_to_objfile_object): Return a new reference. * python/py-symtab.c (stpy_get_objfile): Update. * python/py-prettyprint.c (find_pretty_printer_from_objfiles): Update.
This commit is contained in:
parent
3c7aa30778
commit
0a9db5ad8a
9 changed files with 51 additions and 51 deletions
|
@ -115,12 +115,7 @@ objfpy_get_owner (PyObject *self, void *closure)
|
|||
|
||||
owner = objfile->separate_debug_objfile_backlink;
|
||||
if (owner != NULL)
|
||||
{
|
||||
PyObject *result = objfile_to_objfile_object (owner);
|
||||
|
||||
Py_XINCREF (result);
|
||||
return result;
|
||||
}
|
||||
return objfile_to_objfile_object (owner).release ();
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
|
@ -602,12 +597,7 @@ gdbpy_lookup_objfile (PyObject *self, PyObject *args, PyObject *kw)
|
|||
objfile = objfpy_lookup_objfile_by_name (name);
|
||||
|
||||
if (objfile != NULL)
|
||||
{
|
||||
PyObject *result = objfile_to_objfile_object (objfile);
|
||||
|
||||
Py_XINCREF (result);
|
||||
return result;
|
||||
}
|
||||
return objfile_to_objfile_object (objfile).release ();
|
||||
|
||||
PyErr_SetString (PyExc_ValueError, _("Objfile not found."));
|
||||
return NULL;
|
||||
|
@ -625,30 +615,31 @@ py_free_objfile (struct objfile *objfile, void *datum)
|
|||
object->objfile = NULL;
|
||||
}
|
||||
|
||||
/* Return a borrowed reference to the Python object of type Objfile
|
||||
/* Return a new reference to the Python object of type Objfile
|
||||
representing OBJFILE. If the object has already been created,
|
||||
return it. Otherwise, create it. Return NULL and set the Python
|
||||
error on failure. */
|
||||
|
||||
PyObject *
|
||||
gdbpy_ref<>
|
||||
objfile_to_objfile_object (struct objfile *objfile)
|
||||
{
|
||||
gdbpy_ref<objfile_object> object
|
||||
((objfile_object *) objfile_data (objfile, objfpy_objfile_data_key));
|
||||
if (object == NULL)
|
||||
PyObject *result
|
||||
= ((PyObject *) objfile_data (objfile, objfpy_objfile_data_key));
|
||||
if (result == NULL)
|
||||
{
|
||||
object.reset (PyObject_New (objfile_object, &objfile_object_type));
|
||||
if (object != NULL)
|
||||
{
|
||||
if (!objfpy_initialize (object.get ()))
|
||||
return NULL;
|
||||
gdbpy_ref<objfile_object> object
|
||||
((objfile_object *) PyObject_New (objfile_object, &objfile_object_type));
|
||||
if (object == NULL)
|
||||
return NULL;
|
||||
if (!objfpy_initialize (object.get ()))
|
||||
return NULL;
|
||||
|
||||
object->objfile = objfile;
|
||||
set_objfile_data (objfile, objfpy_objfile_data_key, object.get ());
|
||||
}
|
||||
object->objfile = objfile;
|
||||
set_objfile_data (objfile, objfpy_objfile_data_key, object.get ());
|
||||
result = (PyObject *) object.release ();
|
||||
}
|
||||
|
||||
return (PyObject *) object.release ();
|
||||
return gdbpy_ref<>::new_reference (result);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue