From 0294de028f1d5ca224c7abcb5223c13ff07aa943 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 11 Jul 2009 10:14:54 +0000 Subject: #6446: fix import_spam() function to use correct error and reference handling. --- Doc/extending/extending.rst | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index d052ec2..5c99c3d 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -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; } -- cgit v0.12