forked from Imagelibrary/binutils-gdb
gdb: add program_space parameter to emit_clear_objfiles_event
Add program_space space parameters to emit_clear_objfiles_event and create_clear_objfiles_event_object, making the reference to current_program_space bubble up a bit. Change-Id: I5fde2071712781e5d45971fa0ab34d85d3a49a71 Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
@@ -78,7 +78,7 @@ extern gdbpy_ref<> create_thread_event_object (PyTypeObject *py_type,
|
|||||||
|
|
||||||
extern int emit_new_objfile_event (struct objfile *objfile);
|
extern int emit_new_objfile_event (struct objfile *objfile);
|
||||||
extern int emit_free_objfile_event (struct objfile *objfile);
|
extern int emit_free_objfile_event (struct objfile *objfile);
|
||||||
extern int emit_clear_objfiles_event (void);
|
extern int emit_clear_objfiles_event (program_space *pspace);
|
||||||
|
|
||||||
extern void evpy_dealloc (PyObject *self);
|
extern void evpy_dealloc (PyObject *self);
|
||||||
extern int evpy_add_attribute (PyObject *event,
|
extern int evpy_add_attribute (PyObject *event,
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ python_new_objfile (struct objfile *objfile)
|
|||||||
|
|
||||||
if (objfile == NULL)
|
if (objfile == NULL)
|
||||||
{
|
{
|
||||||
if (emit_clear_objfiles_event () < 0)
|
if (emit_clear_objfiles_event (current_program_space) < 0)
|
||||||
gdbpy_print_stack ();
|
gdbpy_print_stack ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -93,14 +93,14 @@ emit_free_objfile_event (struct objfile *objfile)
|
|||||||
/* Subroutine of emit_clear_objfiles_event to simplify it. */
|
/* Subroutine of emit_clear_objfiles_event to simplify it. */
|
||||||
|
|
||||||
static gdbpy_ref<>
|
static gdbpy_ref<>
|
||||||
create_clear_objfiles_event_object (void)
|
create_clear_objfiles_event_object (program_space *pspace)
|
||||||
{
|
{
|
||||||
gdbpy_ref<> objfile_event
|
gdbpy_ref<> objfile_event
|
||||||
= create_event_object (&clear_objfiles_event_object_type);
|
= create_event_object (&clear_objfiles_event_object_type);
|
||||||
if (objfile_event == NULL)
|
if (objfile_event == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
gdbpy_ref<> py_progspace = pspace_to_pspace_object (current_program_space);
|
gdbpy_ref<> py_progspace = pspace_to_pspace_object (pspace);
|
||||||
if (py_progspace == NULL || evpy_add_attribute (objfile_event.get (),
|
if (py_progspace == NULL || evpy_add_attribute (objfile_event.get (),
|
||||||
"progspace",
|
"progspace",
|
||||||
py_progspace.get ()) < 0)
|
py_progspace.get ()) < 0)
|
||||||
@@ -115,12 +115,12 @@ create_clear_objfiles_event_object (void)
|
|||||||
Return -1 if emit fails. */
|
Return -1 if emit fails. */
|
||||||
|
|
||||||
int
|
int
|
||||||
emit_clear_objfiles_event (void)
|
emit_clear_objfiles_event (program_space *pspace)
|
||||||
{
|
{
|
||||||
if (evregpy_no_listeners_p (gdb_py_events.clear_objfiles))
|
if (evregpy_no_listeners_p (gdb_py_events.clear_objfiles))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
gdbpy_ref<> event = create_clear_objfiles_event_object ();
|
gdbpy_ref<> event = create_clear_objfiles_event_object (pspace);
|
||||||
if (event != NULL)
|
if (event != NULL)
|
||||||
return evpy_emit_event (event.get (), gdb_py_events.clear_objfiles);
|
return evpy_emit_event (event.get (), gdb_py_events.clear_objfiles);
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user