public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  archer-swagiaal-oguz: check return value of create_eventregistry_object
@ 2010-12-22 17:05 swagiaal
  0 siblings, 0 replies; only message in thread
From: swagiaal @ 2010-12-22 17:05 UTC (permalink / raw)
  To: archer-commits

The branch, archer-swagiaal-oguz has been updated
       via  548dc08bb471b5197f2cb1f65e1585b9291a915e (commit)
       via  7472725d6efaa60abf7d597e2294279099d10819 (commit)
       via  9e8bdfa9417741cc467c576721b20a3c1c2e4c9d (commit)
       via  25836d405cc1ea7dff18668dce2250e717c18ece (commit)
       via  3ef8a356cf8618369f08a777b6fb9cc9532adcfd (commit)
      from  195ae91671c75c0dda34afbffb53e49df611076c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 548dc08bb471b5197f2cb1f65e1585b9291a915e
Author: Sami Wagiaalla <swagiaal@redhat.com>
Date:   Wed Dec 22 12:04:47 2010 -0500

    check return value of create_eventregistry_object

commit 7472725d6efaa60abf7d597e2294279099d10819
Author: Sami Wagiaalla <swagiaal@redhat.com>
Date:   Wed Dec 22 11:53:05 2010 -0500

    Convert gdb_py_events from singleton to module.

commit 9e8bdfa9417741cc467c576721b20a3c1c2e4c9d
Author: Sami Wagiaalla <swagiaal@redhat.com>
Date:   Wed Dec 22 11:19:13 2010 -0500

    misc fixes and formatting.

commit 25836d405cc1ea7dff18668dce2250e717c18ece
Author: Sami Wagiaalla <swagiaal@redhat.com>
Date:   Tue Dec 21 15:36:29 2010 -0500

    Rename PY_NEW_EVENT_TYPE to GDBPY_NEW_EVENT_TYPE
    
    and remove trailing \

commit 3ef8a356cf8618369f08a777b6fb9cc9532adcfd
Author: Sami Wagiaalla <swagiaal@redhat.com>
Date:   Tue Dec 21 15:18:40 2010 -0500

    Remove comment.

-----------------------------------------------------------------------

Summary of changes:
 gdb/breakpoint.h                |    3 -
 gdb/python/py-breakpointevent.c |   12 ++--
 gdb/python/py-continueevent.c   |   19 +++---
 gdb/python/py-event.c           |    5 +-
 gdb/python/py-event.h           |   20 ++++--
 gdb/python/py-eventregistry.c   |    7 +-
 gdb/python/py-events.c          |  135 ++++++++++++---------------------------
 gdb/python/py-events.h          |    5 +-
 gdb/python/py-exitedevent.c     |   21 +++---
 gdb/python/py-inferior.c        |   10 ++--
 gdb/python/py-signalevent.c     |   14 ++--
 gdb/python/py-stopevent.c       |   27 ++++----
 gdb/python/python.c             |    2 +-
 13 files changed, 113 insertions(+), 167 deletions(-)

First 500 lines of diff:
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 7767356..a044c6b 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -753,9 +753,6 @@ enum bp_print_how
     print_it_done
   };
 
-/* Breakpoint status. This sturct is used to deliver information about
-   a breakpoint when it is hit to the observers of that event.  */
-
 struct bpstats
   {
     /* Linked list because there can be more than one breakpoint at
diff --git a/gdb/python/py-breakpointevent.c b/gdb/python/py-breakpointevent.c
index dc6e2c2..5e68ec0 100644
--- a/gdb/python/py-breakpointevent.c
+++ b/gdb/python/py-breakpointevent.c
@@ -57,9 +57,9 @@ create_breakpoint_event_object (struct bpstats *bs, thread_object *stopped_threa
   return NULL;
 }
 
-PY_NEW_EVENT_TYPE (breakpoint,
-                   "gdb.BreakpointEvent",
-                   "BreakpointEvent",
-                   "GDB breakpoint stop event object",
-                   stop_event_object_type,
-                   static);
+GDBPY_NEW_EVENT_TYPE (breakpoint,
+                      "gdb.BreakpointEvent",
+                      "BreakpointEvent",
+                      "GDB breakpoint stop event object",
+                      stop_event_object_type,
+                      static);
diff --git a/gdb/python/py-continueevent.c b/gdb/python/py-continueevent.c
index 71c3336..f4d0e78 100644
--- a/gdb/python/py-continueevent.c
+++ b/gdb/python/py-continueevent.c
@@ -36,8 +36,7 @@ continue_event_object *
 create_continue_event_object ()
 {
   return (continue_event_object *)
-      create_event_object (&continue_event_object_type,
-                           (thread_object *) Py_None);
+      create_event_object (&continue_event_object_type);
 }
 
 /* Callback function which notifies observers when a continue event occurs.
@@ -47,16 +46,16 @@ create_continue_event_object ()
 int
 emit_continue_event (ptid_t ptid)
 {
-  event_object *event = (event_object *) create_continue_event_object();
+  event_object *event = (event_object *) create_continue_event_object ();
   if (event)
     return evpy_emit_event (event,
-                            gdb_py_events->cont);
+                            gdb_py_events.cont);
   return -1;
 }
 
-PY_NEW_EVENT_TYPE (continue,
-                   "gdb.ContinueEvent",
-                   "ContinueEvent",
-                   "GDB continue event object",
-                   event_object_type,
-                   static);
+GDBPY_NEW_EVENT_TYPE (continue,
+                      "gdb.ContinueEvent",
+                      "ContinueEvent",
+                      "GDB continue event object",
+                      event_object_type,
+                      static);
diff --git a/gdb/python/py-event.c b/gdb/python/py-event.c
index bae3ab3..cd9af34 100644
--- a/gdb/python/py-event.c
+++ b/gdb/python/py-event.c
@@ -27,8 +27,7 @@ evpy_dealloc (PyObject *self)
 }
 
 event_object *
-create_event_object (PyTypeObject *py_type,
-                     thread_object *inferior_thread)
+create_event_object (PyTypeObject *py_type)
 {
   event_object *event_obj;
 
@@ -48,7 +47,7 @@ create_event_object (PyTypeObject *py_type,
   return NULL;
 }
 
-/* Add the attribute ATTR to the event object EVENT. In
+/* Add the attribute ATTR to the event object EVENT.  In
    python this attribute will be accessible by the name NAME.
    returns 0 if the operation succeeds and -1 otherwise.  */
 
diff --git a/gdb/python/py-event.h b/gdb/python/py-event.h
index 7e09ae6..e46f1fe 100644
--- a/gdb/python/py-event.h
+++ b/gdb/python/py-event.h
@@ -35,9 +35,17 @@
 
      struct PyTypeObject {NAME}_event_object_type
 
+  NAME is the name of the event.
+  PY_PATH is a string representing the module and python name of
+    the event.
+  PY_NAME a string representing what the event should be called in
+    python.
+  DOC Python documentation for the new event type
+  BASE the base event for this event usually just event_object_type.
+  QUAL qualification for the create event usually 'static'
 */
 
-#define PY_NEW_EVENT_TYPE(name, py_path, py_name, doc, base, qual) \
+#define GDBPY_NEW_EVENT_TYPE(name, py_path, py_name, doc, base, qual) \
 \
     qual PyTypeObject name##_event_object_type = \
     { \
@@ -82,12 +90,11 @@
     }; \
 \
 void \
-gdbpy_initialize_##name##_event(void) \
+gdbpy_initialize_##name##_event (void) \
 { \
   gdbpy_initialize_event_generic (&name##_event_object_type, \
                                   py_name); \
-} \
-
+}
 
 typedef struct
 {
@@ -102,11 +109,10 @@ extern int emit_exited_event (LONGEST *exit_code);
 
 extern int evpy_emit_event (event_object *event,
                             eventregistry_object *registry);
-extern event_object * create_event_object (PyTypeObject *py_type,
-                                           thread_object *inferior_thread);
+extern event_object * create_event_object (PyTypeObject *py_type);
 extern void evpy_dealloc (PyObject *self);
 extern int evpy_add_attribute (event_object *event,
-                                char *name, PyObject *attr);
+                               char *name, PyObject *attr);
 int gdbpy_initialize_event_generic (PyTypeObject *type, char *name);
 
 
diff --git a/gdb/python/py-eventregistry.c b/gdb/python/py-eventregistry.c
index 98a0edc..fc89853 100644
--- a/gdb/python/py-eventregistry.c
+++ b/gdb/python/py-eventregistry.c
@@ -71,7 +71,7 @@ evregpy_disconnect (PyObject *self, PyObject *function)
   Py_RETURN_NONE;
 }
 
-/* Create a new event registry. This function uses PyObject_New
+/* Create a new event registry.  This function uses PyObject_New
    and therefore returns a new reference that callers must handle.  */
 
 eventregistry_object *
@@ -97,7 +97,8 @@ evregpy_dealloc (PyObject *self)
   self->ob_type->tp_free (self);
 }
 
-/* Initialize the Python event registry code. */
+/* Initialize the Python event registry code.  */
+
 void
 gdbpy_initialize_eventregistry (void)
 {
@@ -113,7 +114,7 @@ static PyMethodDef eventregistry_object_methods[] =
 {
   { "connect", evregpy_connect, METH_VARARGS, "Add function" },
   { "disconnect", evregpy_disconnect, METH_VARARGS, "Remove function" },
-  { NULL } /* Sentinel. */
+  { NULL } /* Sentinel.  */
 };
 
 static PyTypeObject eventregistry_object_type =
diff --git a/gdb/python/py-events.c b/gdb/python/py-events.c
index 0f279c4..59eed57 100644
--- a/gdb/python/py-events.c
+++ b/gdb/python/py-events.c
@@ -19,117 +19,62 @@
 
 #include "py-events.h"
 
-void
-dealloc_events_object (PyObject *self)
-{
-  Py_XDECREF (gdb_py_events->stop);
-  Py_XDECREF (gdb_py_events->breakpoint);
-  Py_XDECREF (gdb_py_events->signal);
-  Py_XDECREF (gdb_py_events->cont);
-  Py_XDECREF (gdb_py_events->exited);
-  Py_XDECREF (gdb_py_events->dict);
-  Py_XDECREF (gdb_py_events);
-  self->ob_type->tp_free (self);
-}
-
 /* Initialize python events.  */
 
 void
-gdbpy_initialize_py_events()
+gdbpy_initialize_py_events ()
 {
-  if (PyType_Ready (&events_object_type) < 0)
-    return;
 
-  gdb_py_events = PyObject_New (events_object,
-                                &events_object_type);
+  gdb_py_events.stop = create_eventregistry_object ();
+  gdb_py_events.breakpoint = create_eventregistry_object ();
+  gdb_py_events.signal = create_eventregistry_object ();
+  gdb_py_events.cont = create_eventregistry_object ();
+  gdb_py_events.exited = create_eventregistry_object ();
 
-  gdb_py_events->stop = create_eventregistry_object ();
-  gdb_py_events->breakpoint = create_eventregistry_object ();
-  gdb_py_events->signal = create_eventregistry_object ();
-  gdb_py_events->cont = create_eventregistry_object ();
-  gdb_py_events->exited = create_eventregistry_object ();
+  gdb_py_events.module = Py_InitModule ("events", NULL);
+  if (!gdb_py_events.module)
+    goto fail;
 
-  gdb_py_events->dict = PyDict_New ();
-  if (!gdb_py_events->dict)
+  if (gdb_py_events.stop == NULL
+      || PyModule_AddObject (gdb_py_events.module,
+                             "stop",
+                             (PyObject *) gdb_py_events.stop) < 0)
     goto fail;
 
-  if (PyObject_SetAttrString ((PyObject *) gdb_py_events,
-                              "stop",
-                              (PyObject *) gdb_py_events->stop) < 0)
+  if (gdb_py_events.breakpoint == NULL
+      || PyModule_AddObject (gdb_py_events.module,
+                          "breakpoint",
+                          (PyObject *) gdb_py_events.breakpoint) < 0)
     goto fail;
-  if (PyObject_SetAttrString ((PyObject *) gdb_py_events,
-                              "breakpoint",
-                              (PyObject *) gdb_py_events->breakpoint) < 0)
+  if (gdb_py_events.cont == NULL
+      || PyModule_AddObject (gdb_py_events.module,
+                          "cont",
+                          (PyObject *) gdb_py_events.cont) < 0)
     goto fail;
-  if (PyObject_SetAttrString ((PyObject *) gdb_py_events,
-                              "cont",
-                              (PyObject *) gdb_py_events->cont) < 0)
+  if (gdb_py_events.exited == NULL
+      || PyModule_AddObject (gdb_py_events.module,
+                          "exited",
+                          (PyObject *) gdb_py_events.exited) < 0)
     goto fail;
-  if (PyObject_SetAttrString ((PyObject *) gdb_py_events,
-                              "exited",
-                              (PyObject *) gdb_py_events->exited) < 0)
+  if (gdb_py_events.signal == NULL
+      || PyModule_AddObject (gdb_py_events.module,
+                          "signal",
+                          (PyObject *) gdb_py_events.signal) < 0)
     goto fail;
-  if (PyObject_SetAttrString ((PyObject *) gdb_py_events,
-                              "signal",
-                              (PyObject *) gdb_py_events->signal) < 0)
+
+  Py_INCREF (gdb_py_events.module);
+  if(PyModule_AddObject (gdb_module,
+                         "events",
+                         (PyObject *) gdb_py_events.module) < 0)
     goto fail;
 
-  Py_INCREF (&events_object_type);
-  PyModule_AddObject (gdb_module, "events", (PyObject *) gdb_py_events);
   return;
 
   fail:
-   gdbpy_print_stack();
-   Py_XDECREF (gdb_py_events->stop);
-   Py_XDECREF (gdb_py_events->breakpoint);
-   Py_XDECREF (gdb_py_events->signal);
-   Py_XDECREF (gdb_py_events->cont);
-   Py_XDECREF (gdb_py_events->exited);
-   Py_XDECREF (gdb_py_events->dict);
-   Py_XDECREF (gdb_py_events);
-
+   gdbpy_print_stack ();
+   Py_XDECREF (gdb_py_events.stop);
+   Py_XDECREF (gdb_py_events.breakpoint);
+   Py_XDECREF (gdb_py_events.signal);
+   Py_XDECREF (gdb_py_events.cont);
+   Py_XDECREF (gdb_py_events.exited);
 }
-
-
-PyTypeObject events_object_type =
-{
-  PyObject_HEAD_INIT (NULL)
-  0,                                          /* ob_size */
-  "gdb.events",                               /* tp_name */
-  sizeof (events_object),                     /* tp_basicsize */
-  0,                                          /* tp_itemsize */
-  dealloc_events_object,                      /* tp_dealloc */
-  0,                                          /* tp_print */
-  0,                                          /* tp_getattr */
-  0,                                          /* tp_setattr */
-  0,                                          /* tp_compare */
-  0,                                          /* tp_repr */
-  0,                                          /* tp_as_number */
-  0,                                          /* tp_as_sequence */
-  0,                                          /* tp_as_mapping */
-  0,                                          /* tp_hash  */
-  0,                                          /* tp_call */
-  0,                                          /* tp_str */
-  0,                                          /* tp_getattro */
-  0,                                          /* tp_setattro */
-  0,                                          /* tp_as_buffer */
-  Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   /* tp_flags */
-  "GDB events object. This Object holds references to all the\
-gdb events that clients can listen to.",      /* tp_doc */
-  0,                                          /* tp_traverse */
-  0,                                          /* tp_clear */
-  0,                                          /* tp_richcompare */
-  0,                                          /* tp_weaklistoffset */
-  0,                                          /* tp_iter */
-  0,                                          /* tp_iternext */
-  0,                                          /* tp_methods */
-  0,                                          /* tp_members */
-  0,                                          /* tp_getset */
-  0,                                          /* tp_base */
-  0,                                          /* tp_dict */
-  0,                                          /* tp_descr_get */
-  0,                                          /* tp_descr_set */
-  offsetof (events_object, dict),             /* tp_dictoffset */
-  0,                                          /* tp_init */
-  0                                           /* tp_alloc */
-};
diff --git a/gdb/python/py-events.h b/gdb/python/py-events.h
index ad36b23..abed1e7 100644
--- a/gdb/python/py-events.h
+++ b/gdb/python/py-events.h
@@ -38,10 +38,11 @@ typedef struct
   eventregistry_object *cont;
   eventregistry_object *exited;
 
-  PyObject *dict;
+  PyObject *module;
+
 } events_object;
 
 /* Python events singleton.  */
-events_object *gdb_py_events;
+events_object gdb_py_events;
 
 #endif /* GDB_PY_EVENTS_H */
diff --git a/gdb/python/py-exitedevent.c b/gdb/python/py-exitedevent.c
index 8c419c8..5bd37f9 100644
--- a/gdb/python/py-exitedevent.c
+++ b/gdb/python/py-exitedevent.c
@@ -40,13 +40,12 @@ create_exited_event_object (LONGEST *exit_code)
   exited_event_object *exited_event;
 
   exited_event = (exited_event_object *)
-      create_event_object (&exited_event_object_type,
-                           (thread_object *) Py_None);
+      create_event_object (&exited_event_object_type);
 
   if (!exited_event)
     goto fail;
 
-  exited_event->exit_code = (PyLongObject *) PyLong_FromLongLong (*exit_code);
+  exited_event->exit_code = (PyLongObject *) PyLong_FromLongLong (* exit_code);
   if (evpy_add_attribute ((event_object *) exited_event,
                           "exit_code",
                           (PyObject *)exited_event->exit_code) < 0)
@@ -60,7 +59,7 @@ create_exited_event_object (LONGEST *exit_code)
    return NULL;
 }
 
-/* Callback that is used when an exit event occurs. This function
+/* Callback that is used when an exit event occurs.  This function
    will create a new Python exited event object.  */
 
 int
@@ -72,15 +71,15 @@ emit_exited_event (LONGEST *exit_code)
   if (event)
     return evpy_emit_event ((event_object *)
                             event,
-                            gdb_py_events->exited);
+                            gdb_py_events.exited);
 
   return -1;
 }
 
 
-PY_NEW_EVENT_TYPE (exited,
-                   "gdb.ExitedEvent",
-                   "ExitedEvent",
-                   "GDB exited event object",
-                   event_object_type,
-                   static);
+GDBPY_NEW_EVENT_TYPE (exited,
+                      "gdb.ExitedEvent",
+                      "ExitedEvent",
+                      "GDB exited event object",
+                      event_object_type,
+                      static);
diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
index 4b95c49..0bf411f 100644
--- a/gdb/python/py-inferior.c
+++ b/gdb/python/py-inferior.c
@@ -86,7 +86,7 @@ python_on_normal_stop (struct bpstats *bs, int print_frame)
   if (!find_thread_ptid (inferior_ptid))
       return;
 
-  stop_signal = (char *) target_signal_to_name (inferior_thread()->suspend.stop_signal);
+  stop_signal = (char *) target_signal_to_name (inferior_thread ()->suspend.stop_signal);
 
   cleanup = ensure_python_env (get_current_arch (), current_language);
 
@@ -121,8 +121,8 @@ python_inferior_exit (struct inferior *inf)
   if (get_internalvar_integer (lookup_internalvar ("_exitcode"), &exitcode_val))
     exit_code = &exitcode_val;
 
-  if (exit_code &&
-      emit_exited_event (exit_code) < 0)
+  if (exit_code
+      && emit_exited_event (exit_code) < 0)
     gdbpy_print_stack ();
 
   do_cleanups (cleanup);
@@ -163,7 +163,7 @@ inferior_to_inferior_object (struct inferior *inferior)
 
 /* Finds the Python Inferior object for the given PID.  Returns a
    borrowed reference, or NULL if PID does not match any inferior
-   obect.  */
+   object.  */
 
 PyObject *
 find_inferior_object (int pid)
@@ -647,7 +647,7 @@ gdbpy_initialize_inferior (void)
   observer_attach_thread_exit (delete_thread_object);
   observer_attach_normal_stop (python_on_normal_stop);
   observer_attach_target_resumed (python_on_resume);
-  observer_attach_inferior_exit(python_inferior_exit);
+  observer_attach_inferior_exit (python_inferior_exit);
 
   if (PyType_Ready (&membuf_object_type) < 0)
     return;
diff --git a/gdb/python/py-signalevent.c b/gdb/python/py-signalevent.c
index 40fbe12..af5566f 100644
--- a/gdb/python/py-signalevent.c
+++ b/gdb/python/py-signalevent.c
@@ -35,7 +35,7 @@ create_signal_event_object (const char *stop_signal,
   signal_event_object *signal_event_obj =
       (signal_event_object *)
       create_stop_event_object (&signal_event_object_type,
-                                (thread_object *)stopped_thread);
+                                (thread_object *) stopped_thread);
 
   if (!signal_event_obj)
     goto fail;
@@ -56,9 +56,9 @@ create_signal_event_object (const char *stop_signal,
    return NULL;
 }
 
-PY_NEW_EVENT_TYPE (signal,
-                   "gdb.SignalEvent",
-                   "SignalEvent",
-                   "GDB signal event object",
-                   stop_event_object_type,
-                   static);
+GDBPY_NEW_EVENT_TYPE (signal,
+                      "gdb.SignalEvent",
+                      "SignalEvent",
+                      "GDB signal event object",
+                      stop_event_object_type,
+                      static);
diff --git a/gdb/python/py-stopevent.c b/gdb/python/py-stopevent.c
index 5e4f46d..8d8735c 100644
--- a/gdb/python/py-stopevent.c
+++ b/gdb/python/py-stopevent.c
@@ -30,15 +30,14 @@ stop_event_object *
 create_stop_event_object (PyTypeObject *py_type, thread_object *thread)
 {
   stop_event_object *stop_event_obj =
-      (stop_event_object *) create_event_object (py_type,
-                                                 thread);
+      (stop_event_object *) create_event_object (py_type);
 
   if (!stop_event_obj)
     goto fail;
 
   stop_event_obj->inferior_thread = (PyObject *) thread;
 


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-12-22 17:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-22 17:05 [SCM] archer-swagiaal-oguz: check return value of create_eventregistry_object swagiaal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).