]> granicus.if.org Git - python/commitdiff
#6446: fix import_spam() function to use correct error and reference handling.
authorGeorg Brandl <georg@python.org>
Sat, 11 Jul 2009 10:14:54 +0000 (10:14 +0000)
committerGeorg Brandl <georg@python.org>
Sat, 11 Jul 2009 10:14:54 +0000 (10:14 +0000)
Doc/extending/extending.rst

index d052ec24c65d8fa102b149a73e0b6a312f09d84e..5c99c3db27ab345515659c12bed3d9e208b26cc0 100644 (file)
@@ -1219,16 +1219,23 @@ like this::
    static int
    import_spam(void)
    {
-       PyObject *module = PyImport_ImportModule("spam");
-
-       if (module != NULL) {
-           PyObject *c_api_object = PyObject_GetAttrString(module, "_C_API");
-           if (c_api_object == NULL)
-               return -1;
-           if (PyCObject_Check(c_api_object))
-               PySpam_API = (void **)PyCObject_AsVoidPtr(c_api_object);
-           Py_DECREF(c_api_object);
+       PyObject *c_api_object;
+       PyObject *module;
+
+       module = PyImport_ImportModule("spam");
+       if (module == NULL)
+           return -1;
+
+       c_api_object = PyObject_GetAttrString(module, "_C_API");
+       if (c_api_object == NULL) {
+           Py_DECREF(module);
+           return -1;
        }
+       if (PyCObject_Check(c_api_object))
+           PySpam_API = (void **)PyCObject_AsVoidPtr(c_api_object);
+
+       Py_DECREF(c_api_object);
+       Py_DECREF(module);
        return 0;
    }