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:
parent
35c61a1dd5
commit
7d221d749c
17 changed files with 250 additions and 303 deletions
|
@ -24,9 +24,6 @@
|
|||
#include "python-internal.h"
|
||||
#include "inferior.h"
|
||||
|
||||
extern PyTypeObject thread_event_object_type
|
||||
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
|
||||
|
||||
/* Stores a list of objects to be notified when the event for which this
|
||||
registry tracks occurs. */
|
||||
|
||||
|
@ -42,21 +39,10 @@ typedef struct
|
|||
|
||||
typedef struct
|
||||
{
|
||||
eventregistry_object *stop;
|
||||
eventregistry_object *cont;
|
||||
eventregistry_object *exited;
|
||||
eventregistry_object *new_objfile;
|
||||
eventregistry_object *clear_objfiles;
|
||||
eventregistry_object *new_inferior;
|
||||
eventregistry_object *inferior_deleted;
|
||||
eventregistry_object *new_thread;
|
||||
eventregistry_object *inferior_call;
|
||||
eventregistry_object *memory_changed;
|
||||
eventregistry_object *register_changed;
|
||||
eventregistry_object *breakpoint_created;
|
||||
eventregistry_object *breakpoint_deleted;
|
||||
eventregistry_object *breakpoint_modified;
|
||||
eventregistry_object *before_prompt;
|
||||
#define GDB_PY_DEFINE_EVENT(name) \
|
||||
eventregistry_object *name;
|
||||
#include "py-all-events.def"
|
||||
#undef GDB_PY_DEFINE_EVENT
|
||||
|
||||
PyObject *module;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue