Small event ownership clean up in Python layer

It seems cleaner to me for functions like create_thread_event_object,
which pass object ownership to their callers, to directly return a
gdb_ref<>.  This way the ownership transfer is part of the API.  This
patch makes this change.

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

	* python/py-threadevent.c (create_thread_event_object): Return
	gdbpy_ref.
	* python/py-stopevent.h (create_stop_event_object)
	(create_breakpoint_event_object, create_signal_event_object):
	Update.
	* python/py-stopevent.c (create_stop_event_object): Return
	gdbpy_ref.
	(emit_stop_event): Update.
	* python/py-signalevent.c (create_signal_event_object): Return
	gdbpy_ref.
	* python/py-infevents.c (create_inferior_call_event_object):
	Update.
	* python/py-event.h (create_event_object)
	(create_thread_event_object): Update.
	* python/py-event.c (create_event_object): Return gdbpy_ref.
	* python/py-continueevent.c: Return gdbpy_ref.
	* python/py-bpevent.c (create_breakpoint_event_object): Return
	gdbpy_ref.
This commit is contained in:
Tom Tromey 2017-09-08 14:26:43 -06:00
parent 7c96f8c1da
commit 35c61a1dd5
10 changed files with 44 additions and 23 deletions

View file

@ -23,7 +23,7 @@
extern PyTypeObject signal_event_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
PyObject *
gdbpy_ref<>
create_signal_event_object (enum gdb_signal stop_signal)
{
const char *signal_name;
@ -43,7 +43,7 @@ create_signal_event_object (enum gdb_signal stop_signal)
signal_name_obj.get ()) < 0)
return NULL;
return signal_event_obj.release ();
return signal_event_obj;
}
GDBPY_NEW_EVENT_TYPE (signal,