diff Python/symtable.c @ 52715:953553ae8b84 2.6

Merged revisions 71026 via svnmerge from 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 ........
author Benjamin Peterson <benjamin@python.org>
date Thu, 02 Apr 2009 02:58:49 +0000
parents 6910792fcd4b
children eaebe2460377
line wrap: on
line diff
--- a/Python/symtable.c	Wed Apr 01 20:52:52 2009 +0000
+++ b/Python/symtable.c	Thu Apr 02 02:58:49 2009 +0000
@@ -731,7 +731,6 @@
 		    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 @@
 
 	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