summaryrefslogtreecommitdiffstats
path: root/Doc/extending
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2013-07-30 18:09:03 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2013-07-30 18:09:03 (GMT)
commit3ab7b0aabbea477a5c4a9738f41a0ad4f0c606f5 (patch)
tree0bb1cfb79349146b389fdb19c5fa212fc18cf91c /Doc/extending
parent4ebc9295d15c52295ce903d99ccf24142c22b29d (diff)
downloadcpython-3ab7b0aabbea477a5c4a9738f41a0ad4f0c606f5.zip
cpython-3ab7b0aabbea477a5c4a9738f41a0ad4f0c606f5.tar.gz
cpython-3ab7b0aabbea477a5c4a9738f41a0ad4f0c606f5.tar.bz2
Simplify example of PyErr_Fetch() use
Diffstat (limited to 'Doc/extending')
-rw-r--r--Doc/extending/newtypes.rst9
1 files changed, 4 insertions, 5 deletions
diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst
index cb20bce..d11b408 100644
--- a/Doc/extending/newtypes.rst
+++ b/Doc/extending/newtypes.rst
@@ -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);
}