]> granicus.if.org Git - python/commitdiff
Merged revisions 71026 via svnmerge from
authorBenjamin Peterson <benjamin@python.org>
Thu, 2 Apr 2009 02:58:49 +0000 (02:58 +0000)
committerBenjamin Peterson <benjamin@python.org>
Thu, 2 Apr 2009 02:58:49 +0000 (02:58 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r71026 | benjamin.peterson | 2009-04-01 21:52:46 -0500 (Wed, 01 Apr 2009) | 1 line

  fix error handling
........

Python/symtable.c

index 1871a420d9e6d68082111a4f1f9f6c916c71a70b..e0b28c9e0d0025a21f3e246382778690b0fc5b6a 100644 (file)
@@ -731,7 +731,6 @@ analyze_child_block(PySTEntryObject *entry, PyObject *bound, PyObject *free,
                    PyObject *global, PyObject* child_free)
 {
        PyObject *temp_bound = NULL, *temp_global = NULL, *temp_free = NULL;
-       int success = 0;
 
        /* Copy the bound and global dictionaries.
 
@@ -758,13 +757,17 @@ analyze_child_block(PySTEntryObject *entry, PyObject *bound, PyObject *free,
 
        if (!analyze_block(entry, temp_bound, temp_free, temp_global))
                goto error;
-       success = PyDict_Update(child_free, temp_free) >= 0;
-       success = 1;
+       if (PyDict_Update(child_free, temp_free) < 0)
+               goto error;
+       Py_DECREF(temp_bound);
+       Py_DECREF(temp_free);
+       Py_DECREF(temp_global);
+       return 1;
  error:
        Py_XDECREF(temp_bound);
        Py_XDECREF(temp_free);
        Py_XDECREF(temp_global);
-       return success;
+       return 0;
 }
 
 static int