[Python-checkins] python/dist/src/Doc/ext run-func.c,1.4,1.4.20.1

birkenfeld@users.sourceforge.net birkenfeld at users.sourceforge.net
Tue Jul 12 15:18:06 CEST 2005


Update of /cvsroot/python/python/dist/src/Doc/ext
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3346/Doc/ext

Modified Files:
      Tag: release24-maint
	run-func.c 
Log Message:
backport bug [ 1232768 ] Mistakes in online docs under "5.3 Pure Embedding"



Index: run-func.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/ext/run-func.c,v
retrieving revision 1.4
retrieving revision 1.4.20.1
diff -u -d -r1.4 -r1.4.20.1
--- run-func.c	17 Dec 2002 00:40:38 -0000	1.4
+++ run-func.c	12 Jul 2005 13:18:04 -0000	1.4.20.1
@@ -20,11 +20,8 @@
     Py_DECREF(pName);
 
     if (pModule != NULL) {
-        pDict = PyModule_GetDict(pModule);
-        /* pDict is a borrowed reference */
-
-        pFunc = PyDict_GetItemString(pDict, argv[2]);
-        /* pFun: Borrowed reference */
+        pFunc = PyDict_GetItemString(pModule, argv[2]);
+        /* pFunc is a new reference */
 
         if (pFunc && PyCallable_Check(pFunc)) {
             pArgs = PyTuple_New(argc - 3);
@@ -46,18 +43,19 @@
                 Py_DECREF(pValue);
             }
             else {
+                Py_DECREF(pFunc);
                 Py_DECREF(pModule);
                 PyErr_Print();
                 fprintf(stderr,"Call failed\n");
                 return 1;
             }
-            /* pDict and pFunc are borrowed and must not be Py_DECREF-ed */
         }
         else {
             if (PyErr_Occurred())
                 PyErr_Print();
             fprintf(stderr, "Cannot find function \"%s\"\n", argv[2]);
         }
+        Py_XDECREF(pFunc);
         Py_DECREF(pModule);
     }
     else {



More information about the Python-checkins mailing list