Simplify example of PyErr_Fetch() use

This commit is contained in:
Antoine Pitrou 2013-07-30 20:09:03 +02:00
parent 4ebc9295d1
commit 3ab7b0aabb
1 changed files with 4 additions and 5 deletions

View File

@ -962,10 +962,9 @@ done. This can be done using the :c:func:`PyErr_Fetch` and
if (self->my_callback != NULL) {
PyObject *err_type, *err_value, *err_traceback;
int have_error = PyErr_Occurred() ? 1 : 0;
if (have_error)
PyErr_Fetch(&err_type, &err_value, &err_traceback);
/* This saves the current exception state */
PyErr_Fetch(&err_type, &err_value, &err_traceback);
cbresult = PyObject_CallObject(self->my_callback, NULL);
if (cbresult == NULL)
@ -973,8 +972,8 @@ done. This can be done using the :c:func:`PyErr_Fetch` and
else
Py_DECREF(cbresult);
if (have_error)
PyErr_Restore(err_type, err_value, err_traceback);
/* This restores the saved exception state */
PyErr_Restore(err_type, err_value, err_traceback);
Py_DECREF(self->my_callback);
}