From: Antoine Pitrou Date: Tue, 30 Jul 2013 18:09:03 +0000 (+0200) Subject: Simplify example of PyErr_Fetch() use X-Git-Tag: v3.4.0a1~40^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3ab7b0aabbea477a5c4a9738f41a0ad4f0c606f5;p=python Simplify example of PyErr_Fetch() use --- diff --git a/Doc/extending/newtypes.rst b/Doc/extending/newtypes.rst index cb20bce435..d11b40890c 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); }