change delegation for to_read_description
[deliverable/binutils-gdb.git] / gdb / python / py-evts.c
index 38cd128d522471684c5c8fb93f46f544da81f2c2..a7daf8aa6952cd1413926deec280b9373211746c 100644 (file)
@@ -1,6 +1,6 @@
 /* Python interface to inferior events.
 
-   Copyright (C) 2009-2012 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#include "defs.h"
 #include "py-events.h"
 
+#ifdef IS_PY3K
+static struct PyModuleDef EventModuleDef =
+{
+  PyModuleDef_HEAD_INIT,
+  "gdb.events",
+  NULL,
+  -1,
+  NULL,
+  NULL,
+  NULL,
+  NULL,
+  NULL
+};
+#endif
+
 /* Initialize python events.  */
 
-static int
+static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
 add_new_registry (eventregistry_object **registryp, char *name)
 {
+  int result;
+
   *registryp = create_eventregistry_object ();
 
   if (*registryp == NULL)
-    goto fail;
-
-  if (PyModule_AddObject (gdb_py_events.module,
-                             name,
-                             (PyObject *)(*registryp)) < 0)
-    goto fail;
+    return -1;
 
-  return 0;
-
-  fail:
-   Py_XDECREF (*registryp);
-   return -1;
+  return gdb_pymodule_addobject (gdb_py_events.module,
+                                name,
+                                (PyObject *)(*registryp));
 }
 
-void
+int
 gdbpy_initialize_py_events (void)
 {
+#ifdef IS_PY3K
+  gdb_py_events.module = PyModule_Create (&EventModuleDef);
+#else
   gdb_py_events.module = Py_InitModule ("events", NULL);
+#endif
 
   if (!gdb_py_events.module)
-    goto fail;
+    return -1;
 
   if (add_new_registry (&gdb_py_events.stop, "stop") < 0)
-    goto fail;
+    return -1;
 
   if (add_new_registry (&gdb_py_events.cont, "cont") < 0)
-    goto fail;
+    return -1;
 
   if (add_new_registry (&gdb_py_events.exited, "exited") < 0)
-    goto fail;
+    return -1;
 
   if (add_new_registry (&gdb_py_events.new_objfile, "new_objfile") < 0)
-    goto fail;
+    return -1;
 
-  Py_INCREF (gdb_py_events.module);
-  if (PyModule_AddObject (gdb_module,
-                          "events",
-                          (PyObject *) gdb_py_events.module) < 0)
-    goto fail;
+  if (gdb_pymodule_addobject (gdb_module,
+                             "events",
+                             (PyObject *) gdb_py_events.module) < 0)
+    return -1;
 
-  return;
-
-  fail:
-   gdbpy_print_stack ();
+  return 0;
 }
This page took 0.031995 seconds and 4 git commands to generate.