fix error handling

This commit is contained in:
Benjamin Peterson 2009-04-02 02:52:46 +00:00
parent 4b5c53aba5
commit 985951df7f

View file

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