[Python-checkins] cpython: Fix too early decrefs.

antoine.pitrou python-checkins at python.org
Sun May 6 17:17:19 CEST 2012


http://hg.python.org/cpython/rev/49306ceaf91f
changeset:   76799:49306ceaf91f
user:        Antoine Pitrou <solipsis at pitrou.net>
date:        Sun May 06 17:15:23 2012 +0200
summary:
  Fix too early decrefs.

files:
  Python/import.c |  4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)


diff --git a/Python/import.c b/Python/import.c
--- a/Python/import.c
+++ b/Python/import.c
@@ -1639,7 +1639,6 @@
 
             if (level == 0) {
                 final_mod = PyDict_GetItem(interp->modules, front);
-                Py_DECREF(front);
                 if (final_mod == NULL) {
                     PyErr_Format(PyExc_KeyError,
                                  "%R not in sys.modules as expected", front);
@@ -1647,6 +1646,7 @@
                 else {
                     Py_INCREF(final_mod);
                 }
+                Py_DECREF(front);
             }
             else {
                 Py_ssize_t cut_off = PyUnicode_GET_LENGTH(name) -
@@ -1660,7 +1660,6 @@
                 }
 
                 final_mod = PyDict_GetItem(interp->modules, to_return);
-                Py_DECREF(to_return);
                 if (final_mod == NULL) {
                     PyErr_Format(PyExc_KeyError,
                                  "%R not in sys.modules as expected",
@@ -1669,6 +1668,7 @@
                 else {
                     Py_INCREF(final_mod);
                 }
+                Py_DECREF(to_return);
             }
         }
         else {

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list