]> granicus.if.org Git - python/commitdiff
initgc(): Rewrote to use the PyModule_AddXYZ API; cuts code size.
authorTim Peters <tim.peters@gmail.com>
Sun, 6 Apr 2003 23:30:52 +0000 (23:30 +0000)
committerTim Peters <tim.peters@gmail.com>
Sun, 6 Apr 2003 23:30:52 +0000 (23:30 +0000)
Modules/gcmodule.c

index 36e53ec2ed8aa61d0a6910ede4e9f62e90fc3ea2..bf56cd467f0cd82cf36eafef46ccb96ae8c99356 100644 (file)
@@ -973,32 +973,29 @@ void
 initgc(void)
 {
        PyObject *m;
-       PyObject *d;
 
        m = Py_InitModule4("gc",
                              GcMethods,
                              gc__doc__,
                              NULL,
                              PYTHON_API_VERSION);
-       d = PyModule_GetDict(m);
+
        if (garbage == NULL) {
                garbage = PyList_New(0);
+               if (garbage == NULL)
+                       return;
        }
-       PyDict_SetItemString(d, "garbage", garbage);
-       PyDict_SetItemString(d, "DEBUG_STATS",
-                       PyInt_FromLong(DEBUG_STATS));
-       PyDict_SetItemString(d, "DEBUG_COLLECTABLE",
-                       PyInt_FromLong(DEBUG_COLLECTABLE));
-       PyDict_SetItemString(d, "DEBUG_UNCOLLECTABLE",
-                       PyInt_FromLong(DEBUG_UNCOLLECTABLE));
-       PyDict_SetItemString(d, "DEBUG_INSTANCES",
-                       PyInt_FromLong(DEBUG_INSTANCES));
-       PyDict_SetItemString(d, "DEBUG_OBJECTS",
-                       PyInt_FromLong(DEBUG_OBJECTS));
-       PyDict_SetItemString(d, "DEBUG_SAVEALL",
-                       PyInt_FromLong(DEBUG_SAVEALL));
-       PyDict_SetItemString(d, "DEBUG_LEAK",
-                       PyInt_FromLong(DEBUG_LEAK));
+       if (PyModule_AddObject(m, "garbage", garbage) < 0)
+               return;
+#define ADD_INT(NAME) if (PyModule_AddIntConstant(m, #NAME, NAME) < 0) return
+       ADD_INT(DEBUG_STATS);
+       ADD_INT(DEBUG_COLLECTABLE);
+       ADD_INT(DEBUG_UNCOLLECTABLE);
+       ADD_INT(DEBUG_INSTANCES);
+       ADD_INT(DEBUG_OBJECTS);
+       ADD_INT(DEBUG_SAVEALL);
+       ADD_INT(DEBUG_LEAK);
+#undef ADD_INT
 }
 
 /* for debugging */