Make it simpler to add events to Python

The first patch in this series went through several iterations as I'd
forgotten how many places had to be touched to add a new event and a
new event type.

This patch simplifies the process using two new ".def" files.  Now, a
new event type can be added by adding a line to "py-event-types.def",
and a new event registry can be added by adding a line to
"py-all-events.def".

ChangeLog
2017-09-11  Tom Tromey  <tom@tromey.com>

	* python/python.c (do_start_initialization): Use
	py-event-types.def to initialize types.
	Define all object type structures.
	* python/python-internal.h: Don't declare event initialization
	functions.
	* python/py-threadevent.c (thread_event_object_type): Don't
	define.
	* python/py-stopevent.c (stop_event_object_type): Don't define.
	* python/py-signalevent.c (signal_event_object_type): Don't
	declare or define.
	* python/py-newobjfileevent.c (new_objfile_event_object_type)
	(clear_objfiles_event_object_type): Don't declare or define.
	* python/py-infevents.c (inferior_call_pre_event_object_type)
	(inferior_call_post_event_object_type)
	(register_changed_event_object_type)
	(memory_changed_event_object_type): Don't declare or define.
	* python/py-inferior.c (new_thread_event_object_type)
	(new_inferior_event_object_type)
	(inferior_deleted_event_object_type): Don't declare or define.
	* python/py-exitedevent.c (exited_event_object_type): Don't
	declare or define.
	* python/py-evts.c (gdbpy_initialize_py_events): Use
	py-all-events.def.
	* python/py-events.h (thread_event_object_type): Don't declare.
	(events_object): Use py-all-events.def.
	* python/py-event.h (GDBPY_NEW_EVENT_TYPE): Remove.  Use
	py-event-types.def.
	* python/py-event-types.def: New file.
	* python/py-continueevent.c (create_continue_event_object): Don't
	declare or define.
	* python/py-bpevent.c (breakpoint_event_object_type): Don't
	declare or define.
	* python/py-all-events.def: New file.
This commit is contained in:
Tom Tromey
2017-09-08 15:38:12 -06:00
parent 35c61a1dd5
commit 7d221d749c
17 changed files with 250 additions and 303 deletions

View File

@ -62,55 +62,11 @@ gdbpy_initialize_py_events (void)
if (!gdb_py_events.module)
return -1;
if (add_new_registry (&gdb_py_events.stop, "stop") < 0)
return -1;
if (add_new_registry (&gdb_py_events.cont, "cont") < 0)
return -1;
if (add_new_registry (&gdb_py_events.exited, "exited") < 0)
return -1;
if (add_new_registry (&gdb_py_events.inferior_call,
"inferior_call") < 0)
return -1;
if (add_new_registry (&gdb_py_events.memory_changed,
"memory_changed") < 0)
return -1;
if (add_new_registry (&gdb_py_events.register_changed,
"register_changed") < 0)
return -1;
if (add_new_registry (&gdb_py_events.new_objfile, "new_objfile") < 0)
return -1;
if (add_new_registry (&gdb_py_events.clear_objfiles, "clear_objfiles") < 0)
return -1;
if (add_new_registry (&gdb_py_events.new_inferior, "new_inferior") < 0)
return -1;
if (add_new_registry (&gdb_py_events.inferior_deleted, "inferior_deleted") < 0)
return -1;
if (add_new_registry (&gdb_py_events.new_thread, "new_thread") < 0)
return -1;
if (add_new_registry (&gdb_py_events.breakpoint_created,
"breakpoint_created") < 0)
return -1;
if (add_new_registry (&gdb_py_events.breakpoint_deleted,
"breakpoint_deleted") < 0)
return -1;
if (add_new_registry (&gdb_py_events.breakpoint_modified,
"breakpoint_modified") < 0)
return -1;
if (add_new_registry (&gdb_py_events.before_prompt, "before_prompt") < 0)
#define GDB_PY_DEFINE_EVENT(name) \
if (add_new_registry (&gdb_py_events.name, #name) < 0) \
return -1;
#include "py-all-events.def"
#undef GDB_PY_DEFINE_EVENT
if (gdb_pymodule_addobject (gdb_module,
"events",