* python/py-arch.c (gdbpy_initialize_arch): Use
authorTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:36:19 +0000 (20:36 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 20 May 2013 20:36:19 +0000 (20:36 +0000)
gdb_pymodule_addobject.
* python/py-block.c (gdbpy_initialize_blocks): Use
gdb_pymodule_addobject.
* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Use
gdb_pymodule_addobject.
* python/py-cmd.c (gdbpy_initialize_breakpoints): Use
gdb_pymodule_addobject.
* python/py-event.c (gdbpy_initialize_event_generic): Use
gdb_pymodule_addobject.
* python/py-evtregistry.c (gdbpy_initialize_eventregistry): Use
gdb_pymodule_addobject.
* python/py-evts.c (add_new_registry): Use
gdb_pymodule_addobject.
(gdbpy_initialize_py_events): Likewise.
* python/py-finishbreakpoint.c
(gdbpy_initialize_finishbreakpoints): Use
gdb_pymodule_addobject.
* python/py-frame.c (gdbpy_initialize_frames): Use
gdb_pymodule_addobject.
* python/py-function.c (gdbpy_initialize_functions): Use
gdb_pymodule_addobject.
* python/py-inferior.c (gdbpy_initialize_inferior): Use
gdb_pymodule_addobject.
* python/py-infthread.c (gdbpy_initialize_thread): Use
gdb_pymodule_addobject.
* python/py-objfile.c (gdbpy_initialize_objfile): Use
gdb_pymodule_addobject.
* python/py-param.c (gdbpy_initialize_parameters): Use
gdb_pymodule_addobject.
* python/py-progspace.c (gdbpy_initialize_pspace): Use
gdb_pymodule_addobject.
* python/py-symbol.c (gdbpy_initialize_symbols): Use
gdb_pymodule_addobject.
* python/py-symtab.c (gdbpy_initialize_symtabs): Use
gdb_pymodule_addobject.
* python/py-type.c (gdbpy_initialize_types): Use
gdb_pymodule_addobject.
* python/py-utils.c (gdb_pymodule_addobject): New function.
* python/py-value.c (gdbpy_initialize_values): Use
gdb_pymodule_addobject.
* python/python-internal.h (gdb_pymodule_addobject): Declare.
* python/python.c (_initialize_python): Use
gdb_pymodule_addobject.

23 files changed:
gdb/ChangeLog
gdb/python/py-arch.c
gdb/python/py-block.c
gdb/python/py-breakpoint.c
gdb/python/py-cmd.c
gdb/python/py-event.c
gdb/python/py-evtregistry.c
gdb/python/py-evts.c
gdb/python/py-finishbreakpoint.c
gdb/python/py-frame.c
gdb/python/py-function.c
gdb/python/py-inferior.c
gdb/python/py-infthread.c
gdb/python/py-objfile.c
gdb/python/py-param.c
gdb/python/py-progspace.c
gdb/python/py-symbol.c
gdb/python/py-symtab.c
gdb/python/py-type.c
gdb/python/py-utils.c
gdb/python/py-value.c
gdb/python/python-internal.h
gdb/python/python.c

index d7471f6327a7d5b566a501bb9406cb0ff6db9484..8804d8e65ddc336d52e985bea28b8b52e902c639 100644 (file)
@@ -1,3 +1,50 @@
+2013-05-20  Tom Tromey  <tromey@redhat.com>
+
+       * python/py-arch.c (gdbpy_initialize_arch): Use
+       gdb_pymodule_addobject.
+       * python/py-block.c (gdbpy_initialize_blocks): Use
+       gdb_pymodule_addobject.
+       * python/py-breakpoint.c (gdbpy_initialize_breakpoints): Use
+       gdb_pymodule_addobject.
+       * python/py-cmd.c (gdbpy_initialize_breakpoints): Use
+       gdb_pymodule_addobject.
+       * python/py-event.c (gdbpy_initialize_event_generic): Use
+       gdb_pymodule_addobject.
+       * python/py-evtregistry.c (gdbpy_initialize_eventregistry): Use
+       gdb_pymodule_addobject.
+       * python/py-evts.c (add_new_registry): Use
+       gdb_pymodule_addobject.
+       (gdbpy_initialize_py_events): Likewise.
+       * python/py-finishbreakpoint.c
+       (gdbpy_initialize_finishbreakpoints): Use
+       gdb_pymodule_addobject.
+       * python/py-frame.c (gdbpy_initialize_frames): Use
+       gdb_pymodule_addobject.
+       * python/py-function.c (gdbpy_initialize_functions): Use
+       gdb_pymodule_addobject.
+       * python/py-inferior.c (gdbpy_initialize_inferior): Use
+       gdb_pymodule_addobject.
+       * python/py-infthread.c (gdbpy_initialize_thread): Use
+       gdb_pymodule_addobject.
+       * python/py-objfile.c (gdbpy_initialize_objfile): Use
+       gdb_pymodule_addobject.
+       * python/py-param.c (gdbpy_initialize_parameters): Use
+       gdb_pymodule_addobject.
+       * python/py-progspace.c (gdbpy_initialize_pspace): Use
+       gdb_pymodule_addobject.
+       * python/py-symbol.c (gdbpy_initialize_symbols): Use
+       gdb_pymodule_addobject.
+       * python/py-symtab.c (gdbpy_initialize_symtabs): Use
+       gdb_pymodule_addobject.
+       * python/py-type.c (gdbpy_initialize_types): Use
+       gdb_pymodule_addobject.
+       * python/py-utils.c (gdb_pymodule_addobject): New function.
+       * python/py-value.c (gdbpy_initialize_values): Use
+       gdb_pymodule_addobject.
+       * python/python-internal.h (gdb_pymodule_addobject): Declare.
+       * python/python.c (_initialize_python): Use
+       gdb_pymodule_addobject.
+
 2013-05-20  Tom Tromey  <tromey@redhat.com>
 
        * python/py-cmd.c (cmdpy_completer): Use explicit decref.
index 7920fbb3d2cd0e1c10ad0ba0587437ae0790544e..7098a8ab5b8949aebb3767a666a489ce4ec861e0 100644 (file)
@@ -239,9 +239,8 @@ gdbpy_initialize_arch (void)
   if (PyType_Ready (&arch_object_type) < 0)
     return -1;
 
-  Py_INCREF (&arch_object_type);
-  return PyModule_AddObject (gdb_module, "Architecture",
-                            (PyObject *) &arch_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Architecture",
+                                (PyObject *) &arch_object_type);
 }
 
 static PyMethodDef arch_object_methods [] = {
index f2d9000bd94168bf491cfce4d8a1d11dc7e72d7b..c74ac2cf925e995f60d32964771c504b7b7c0adf 100644 (file)
@@ -442,14 +442,12 @@ gdbpy_initialize_blocks (void)
   blpy_objfile_data_key
     = register_objfile_data_with_cleanup (NULL, del_objfile_blocks);
 
-  Py_INCREF (&block_object_type);
-  if (PyModule_AddObject (gdb_module, "Block",
-                         (PyObject *) &block_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "Block",
+                             (PyObject *) &block_object_type) < 0)
     return -1;
 
-  Py_INCREF (&block_syms_iterator_object_type);
-  return PyModule_AddObject (gdb_module, "BlockIterator",
-                            (PyObject *) &block_syms_iterator_object_type);
+  return gdb_pymodule_addobject (gdb_module, "BlockIterator",
+                                (PyObject *) &block_syms_iterator_object_type);
 }
 
 \f
index b1b6e931feea97e4cd3c8ecb560357e8008436da..d958f3033416a8f0cd346c66020036c1e80b3208 100644 (file)
@@ -868,9 +868,8 @@ gdbpy_initialize_breakpoints (void)
   if (PyType_Ready (&breakpoint_object_type) < 0)
     return -1;
 
-  Py_INCREF (&breakpoint_object_type);
-  if (PyModule_AddObject (gdb_module, "Breakpoint",
-                         (PyObject *) &breakpoint_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "Breakpoint",
+                             (PyObject *) &breakpoint_object_type) < 0)
     return -1;
 
   observer_attach_breakpoint_created (gdbpy_breakpoint_created);
index 22eff253b76e5a0537b54d672c285dfceef5e06f..8b6252e555e65e9f6dfbf2b5aa0bf30b56f07feb 100644 (file)
@@ -600,9 +600,8 @@ gdbpy_initialize_commands (void)
        return -1;
     }
 
-  Py_INCREF (&cmdpy_object_type);
-  if (PyModule_AddObject (gdb_module, "Command",
-                         (PyObject *) &cmdpy_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "Command",
+                             (PyObject *) &cmdpy_object_type) < 0)
     return -1;
 
   invoke_cst = PyString_FromString ("invoke");
index 04f33aba45d1ecf2cc92975916b0bd1b50c6d6a0..9f5134d35c948269d77b187ac4e002b074938d4a 100644 (file)
@@ -78,15 +78,7 @@ gdbpy_initialize_event_generic (PyTypeObject *type,
   if (PyType_Ready (type) < 0)
     return -1;
 
-  Py_INCREF (type);
-  if (PyModule_AddObject (gdb_module, name, (PyObject *) type) < 0)
-    goto fail;
-
-  return 0;
-
-  fail:
-    Py_XDECREF (type);
-    return -1;
+  return gdb_pymodule_addobject (gdb_module, name, (PyObject *) type);
 }
 
 
index d7cbe6427a6b0087a7cacb842c573d2118dcafa0..0eeb853a9d5af6996835a2ed6aa4114c4d2e3d7d 100644 (file)
@@ -112,9 +112,8 @@ gdbpy_initialize_eventregistry (void)
   if (PyType_Ready (&eventregistry_object_type) < 0)
     return -1;
 
-  Py_INCREF (&eventregistry_object_type);
-  return PyModule_AddObject (gdb_module, "EventRegistry",
-                            (PyObject *) &eventregistry_object_type);
+  return gdb_pymodule_addobject (gdb_module, "EventRegistry",
+                                (PyObject *) &eventregistry_object_type);
 }
 
 /* Retern the number of listeners currently connected to this
index 4828bdad919847027903e19809271724e259c067..971c520601c34a326238017b6c66a7a96921e524 100644 (file)
@@ -40,21 +40,16 @@ static struct PyModuleDef EventModuleDef =
 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 0;
+    return -1;
 
-  fail:
-   Py_XDECREF (*registryp);
-   return -1;
+  return gdb_pymodule_addobject (gdb_py_events.module,
+                                name,
+                                (PyObject *)(*registryp));
 }
 
 int
@@ -81,9 +76,9 @@ gdbpy_initialize_py_events (void)
   if (add_new_registry (&gdb_py_events.new_objfile, "new_objfile") < 0)
     return -1;
 
-  if (PyModule_AddObject (gdb_module,
-                          "events",
-                          (PyObject *) gdb_py_events.module) < 0)
+  if (gdb_pymodule_addobject (gdb_module,
+                             "events",
+                             (PyObject *) gdb_py_events.module) < 0)
     return -1;
 
   return 0;
index 5fd1f4bc80ccb342b2970699cc29b3f67ce1fa69..ca20439686d2be7178aa317bc8d8f7f850779786 100644 (file)
@@ -413,9 +413,8 @@ gdbpy_initialize_finishbreakpoints (void)
   if (PyType_Ready (&finish_breakpoint_object_type) < 0)
     return -1;
   
-  Py_INCREF (&finish_breakpoint_object_type);
-  if (PyModule_AddObject (gdb_module, "FinishBreakpoint",
-                         (PyObject *) &finish_breakpoint_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "FinishBreakpoint",
+                             (PyObject *) &finish_breakpoint_object_type) < 0)
     return -1;
     
   observer_attach_normal_stop (bpfinishpy_handle_stop);
index 5d3a8c271b854f414c7593f283f5e3853ed3835e..8d7e1e4dd2b5b056c4cacf2b48964f6a4634baf8 100644 (file)
@@ -638,9 +638,8 @@ gdbpy_initialize_frames (void)
 #undef SET
 #undef FIRST_ERROR
 
-  Py_INCREF (&frame_object_type);
-  return PyModule_AddObject (gdb_module, "Frame",
-                            (PyObject *) &frame_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Frame",
+                                (PyObject *) &frame_object_type);
 }
 
 \f
index 57cdfaefdd9b5f1720b91ed0385604b3054ccd88..fc0d4ddf546af70f642a8f61ee2e1254745b63c4 100644 (file)
@@ -207,9 +207,8 @@ gdbpy_initialize_functions (void)
   if (PyType_Ready (&fnpy_object_type) < 0)
     return -1;
 
-  Py_INCREF (&fnpy_object_type);
-  return PyModule_AddObject (gdb_module, "Function",
-                            (PyObject *) &fnpy_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Function",
+                                (PyObject *) &fnpy_object_type);
 }
 
 \f
index edbad9e0248c27ce2c3bfb12b3f8aebe978d794c..a93677dabb0c8fa7ad6fc7ff124e19f06aa5476a 100644 (file)
@@ -787,9 +787,8 @@ gdbpy_initialize_inferior (void)
   if (PyType_Ready (&inferior_object_type) < 0)
     return -1;
 
-  Py_INCREF (&inferior_object_type);
-  if (PyModule_AddObject (gdb_module, "Inferior",
-                         (PyObject *) &inferior_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "Inferior",
+                             (PyObject *) &inferior_object_type) < 0)
     return -1;
 
   infpy_inf_data_key =
@@ -806,9 +805,8 @@ gdbpy_initialize_inferior (void)
   if (PyType_Ready (&membuf_object_type) < 0)
     return -1;
 
-  Py_INCREF (&membuf_object_type);
-  return PyModule_AddObject (gdb_module, "Membuf", (PyObject *)
-                            &membuf_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Membuf", (PyObject *)
+                                &membuf_object_type);
 }
 
 static PyGetSetDef inferior_object_getset[] =
index 7a5f2627c1e657098ed333410aaef9858f9433bb..d46f57382a2c7ad8ed02b5ade7542dbf81977320 100644 (file)
@@ -261,9 +261,8 @@ gdbpy_initialize_thread (void)
   if (PyType_Ready (&thread_object_type) < 0)
     return -1;
 
-  Py_INCREF (&thread_object_type);
-  return PyModule_AddObject (gdb_module, "InferiorThread",
-                            (PyObject *) &thread_object_type);
+  return gdb_pymodule_addobject (gdb_module, "InferiorThread",
+                                (PyObject *) &thread_object_type);
 }
 
 
index d8c893ced8ecbcf2290da218a724e0bf7712c68b..a954c9d2923d22599a7cd49d08bc7ac9bd67559a 100644 (file)
@@ -307,9 +307,8 @@ gdbpy_initialize_objfile (void)
   if (PyType_Ready (&objfile_object_type) < 0)
     return -1;
 
-  Py_INCREF (&objfile_object_type);
-  return PyModule_AddObject (gdb_module, "Objfile",
-                            (PyObject *) &objfile_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Objfile",
+                                (PyObject *) &objfile_object_type);
 }
 
 \f
index a81ab66127d3b53df7c81fd94eb1f8d13bd24a59..9f56c3a744d97d8c7ccff64619d8735c19fbf1d7 100644 (file)
@@ -774,9 +774,8 @@ gdbpy_initialize_parameters (void)
        return -1;
     }
 
-  Py_INCREF (&parmpy_object_type);
-  return PyModule_AddObject (gdb_module, "Parameter",
-                            (PyObject *) &parmpy_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Parameter",
+                                (PyObject *) &parmpy_object_type);
 }
 
 \f
index 9913313c838367311e8280e5ef58e54ceca541c6..98eeecc240f4ee925d980e2f39d3e7603cc3fd73 100644 (file)
@@ -303,9 +303,8 @@ gdbpy_initialize_pspace (void)
   if (PyType_Ready (&pspace_object_type) < 0)
     return -1;
 
-  Py_INCREF (&pspace_object_type);
-  return PyModule_AddObject (gdb_module, "Progspace",
-                            (PyObject *) &pspace_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Progspace",
+                                (PyObject *) &pspace_object_type);
 }
 
 \f
index 7629f70b5200190a3c4cbd046d5f6d67979bb0de..8afe52d717f00c65373bee132710ae66bdef420c 100644 (file)
@@ -531,9 +531,8 @@ gdbpy_initialize_symbols (void)
                                  TYPES_DOMAIN) < 0)
     return -1;
 
-  Py_INCREF (&symbol_object_type);
-  return PyModule_AddObject (gdb_module, "Symbol",
-                            (PyObject *) &symbol_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Symbol",
+                                (PyObject *) &symbol_object_type);
 }
 
 \f
index fe26b4c24a145ced16966cd885ef7ffdaa924504..006946c839f91d7dab19028b475a8ba6a6459a61 100644 (file)
@@ -501,14 +501,12 @@ gdbpy_initialize_symtabs (void)
   salpy_objfile_data_key
     = register_objfile_data_with_cleanup (NULL, del_objfile_sal);
 
-  Py_INCREF (&symtab_object_type);
-  if (PyModule_AddObject (gdb_module, "Symtab",
-                         (PyObject *) &symtab_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "Symtab",
+                             (PyObject *) &symtab_object_type) < 0)
     return -1;
 
-  Py_INCREF (&sal_object_type);
-  return PyModule_AddObject (gdb_module, "Symtab_and_line",
-                            (PyObject *) &sal_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Symtab_and_line",
+                                (PyObject *) &sal_object_type);
 }
 
 \f
index dd3a7518d38eef6d0bb48f00acd4ed39675857ca..63629fe2345ac5033c0b0dfc39d3629ff3b59bfe 100644 (file)
@@ -1548,19 +1548,16 @@ gdbpy_initialize_types (void)
        return -1;
     }
 
-  Py_INCREF (&type_object_type);
-  if (PyModule_AddObject (gdb_module, "Type",
-                         (PyObject *) &type_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "Type",
+                             (PyObject *) &type_object_type) < 0)
     return -1;
 
-  Py_INCREF (&type_iterator_object_type);
-  if (PyModule_AddObject (gdb_module, "TypeIterator",
-                         (PyObject *) &type_iterator_object_type) < 0)
+  if (gdb_pymodule_addobject (gdb_module, "TypeIterator",
+                             (PyObject *) &type_iterator_object_type) < 0)
     return -1;
 
-  Py_INCREF (&field_object_type);
-  return PyModule_AddObject (gdb_module, "Field",
-                            (PyObject *) &field_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Field",
+                                (PyObject *) &field_object_type);
 }
 
 \f
index eac161f2b486dec7d60f47885c756c2d531e071e..d87eb8caf65e81f51e0d83d3bffb57d8bd8db430 100644 (file)
@@ -431,3 +431,18 @@ gdb_py_generic_dict (PyObject *self, void *closure)
   Py_INCREF (result);
   return result;
 }
+
+/* Like PyModule_AddObject, but does not steal a reference to
+   OBJECT.  */
+
+int
+gdb_pymodule_addobject (PyObject *module, const char *name, PyObject *object)
+{
+  int result;
+
+  Py_INCREF (object);
+  result = PyModule_AddObject (module, name, object);
+  if (result < 0)
+    Py_DECREF (object);
+  return result;
+}
index 762993bd7145ae394917069649123684f89e4c1f..9c55fe1f1e52cb9b0fc43cab2352b9cac435c6b5 100644 (file)
@@ -1392,9 +1392,8 @@ gdbpy_initialize_values (void)
   if (PyType_Ready (&value_object_type) < 0)
     return -1;
 
-  Py_INCREF (&value_object_type);
-  return PyModule_AddObject (gdb_module, "Value",
-                            (PyObject *) &value_object_type);
+  return gdb_pymodule_addobject (gdb_module, "Value",
+                                (PyObject *) &value_object_type);
 }
 
 \f
index f434b667ca4810d356a44297c0a8f6c18d7a5359..b01efa16e9d7cd2170295159ed02227cd266b71d 100644 (file)
@@ -473,4 +473,8 @@ int gdb_py_int_as_long (PyObject *, long *);
 
 PyObject *gdb_py_generic_dict (PyObject *self, void *closure);
 
+int gdb_pymodule_addobject (PyObject *module, const char *name,
+                           PyObject *object)
+  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
+
 #endif /* GDB_PYTHON_INTERNAL_H */
index d8b0de639a0ffe510ddd7cc98bb3827688328ee2..690534f1539dbf6327c7651b7512836d8c33e10e 100644 (file)
@@ -1639,19 +1639,20 @@ message == an error message without a stack will be printed."),
 
   gdbpy_gdb_error = PyErr_NewException ("gdb.error", PyExc_RuntimeError, NULL);
   if (gdbpy_gdb_error == NULL
-      || PyModule_AddObject (gdb_module, "error", gdbpy_gdb_error) < 0)
+      || gdb_pymodule_addobject (gdb_module, "error", gdbpy_gdb_error) < 0)
     goto fail;
 
   gdbpy_gdb_memory_error = PyErr_NewException ("gdb.MemoryError",
                                               gdbpy_gdb_error, NULL);
   if (gdbpy_gdb_memory_error == NULL
-      || PyModule_AddObject (gdb_module, "MemoryError",
-                            gdbpy_gdb_memory_error) < 0)
+      || gdb_pymodule_addobject (gdb_module, "MemoryError",
+                                gdbpy_gdb_memory_error) < 0)
     goto fail;
 
   gdbpy_gdberror_exc = PyErr_NewException ("gdb.GdbError", NULL, NULL);
   if (gdbpy_gdberror_exc == NULL
-      || PyModule_AddObject (gdb_module, "GdbError", gdbpy_gdberror_exc) < 0)
+      || gdb_pymodule_addobject (gdb_module, "GdbError",
+                                gdbpy_gdberror_exc) < 0)
     goto fail;
 
   gdbpy_initialize_gdb_readline ();
@@ -1798,7 +1799,7 @@ finish_python_initialization (void)
       return;
     }
 
-  if (PyModule_AddObject (m, "gdb", gdb_python_module))
+  if (gdb_pymodule_addobject (m, "gdb", gdb_python_module) < 0)
     goto fail;
 
   /* Keep the reference to gdb_python_module since it is in a global
This page took 0.037041 seconds and 4 git commands to generate.