mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-23 18:26:47 +08:00
Add ability to add attributes to gdb.Objfile and gdb.Progspace objects.
gdb/ChangeLog: * NEWS: Mention ability add attributes to gdb.Objfile and gdb.Progspace objects. * python/py-objfile.c (objfile_object): New member dict. (objfpy_dealloc): Py_XDECREF dict. (objfpy_initialize): Initialize dict. (objfile_getset): Add __dict__. (objfile_object_type): Set tp_dictoffset member. * python/py-progspace.c (progspace_object): New member dict. (pspy_dealloc): Py_XDECREF dict. (pspy_initialize): Initialize dict. (pspace_getset): Add __dict__. (pspace_object_type): Set tp_dictoffset member. gdb/doc/ChangeLog: * python.texi (Progspaces In Python): Document ability to add random attributes to gdb.Progspace objects. (Objfiles In Python): Document ability to add random attributes to gdb.objfile objects. gdb/testsuite/ChangeLog: * gdb.python/py-objfile.exp: Add tests for setting random attributes in objfiles. * gdb.python/py-progspace.exp: Add tests for setting random attributes in progspaces.
This commit is contained in:
@ -32,6 +32,10 @@ typedef struct
|
||||
/* The corresponding pspace. */
|
||||
struct program_space *pspace;
|
||||
|
||||
/* Dictionary holding user-added attributes.
|
||||
This is the __dict__ attribute of the object. */
|
||||
PyObject *dict;
|
||||
|
||||
/* The pretty-printer list of functions. */
|
||||
PyObject *printers;
|
||||
|
||||
@ -75,6 +79,7 @@ pspy_dealloc (PyObject *self)
|
||||
{
|
||||
pspace_object *ps_self = (pspace_object *) self;
|
||||
|
||||
Py_XDECREF (ps_self->dict);
|
||||
Py_XDECREF (ps_self->printers);
|
||||
Py_XDECREF (ps_self->frame_filters);
|
||||
Py_XDECREF (ps_self->type_printers);
|
||||
@ -89,6 +94,7 @@ static int
|
||||
pspy_initialize (pspace_object *self)
|
||||
{
|
||||
self->pspace = NULL;
|
||||
self->dict = NULL;
|
||||
|
||||
self->printers = PyList_New (0);
|
||||
if (self->printers == NULL)
|
||||
@ -331,6 +337,8 @@ gdbpy_initialize_pspace (void)
|
||||
|
||||
static PyGetSetDef pspace_getset[] =
|
||||
{
|
||||
{ "__dict__", gdb_py_generic_dict, NULL,
|
||||
"The __dict__ for this progspace.", &pspace_object_type },
|
||||
{ "filename", pspy_get_filename, NULL,
|
||||
"The progspace's main filename, or None.", NULL },
|
||||
{ "pretty_printers", pspy_get_printers, pspy_set_printers,
|
||||
@ -380,7 +388,7 @@ static PyTypeObject pspace_object_type =
|
||||
0, /* tp_dict */
|
||||
0, /* tp_descr_get */
|
||||
0, /* tp_descr_set */
|
||||
0, /* tp_dictoffset */
|
||||
offsetof (pspace_object, dict), /* tp_dictoffset */
|
||||
0, /* tp_init */
|
||||
0, /* tp_alloc */
|
||||
pspy_new, /* tp_new */
|
||||
|
Reference in New Issue
Block a user