Index: gdb/python/py-evts.c |
diff --git a/gdb/python/py-evts.c b/gdb/python/py-evts.c |
index 38cd128d522471684c5c8fb93f46f544da81f2c2..1ff30229f0a84ef2fdea1b15afe1b87505715e2b 100644 |
--- a/gdb/python/py-evts.c |
+++ b/gdb/python/py-evts.c |
@@ -1,6 +1,6 @@ |
/* Python interface to inferior events. |
- Copyright (C) 2009-2012 Free Software Foundation, Inc. |
+ Copyright (C) 2009-2013 Free Software Foundation, Inc. |
This file is part of GDB. |
@@ -17,58 +17,69 @@ |
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; |
} |