diff options
author | Victor Stinner <vstinner@python.org> | 2021-02-19 14:08:54 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-19 14:08:54 (GMT) |
commit | a486054b24658fa623e030ddd4cc0cbfcac54ab0 (patch) | |
tree | 54fc80da26c870385352958e0da434174bb87b2d | |
parent | acde3f1530f1664c9ec7f22e16a7f54c5191e4a6 (diff) | |
download | cpython-a486054b24658fa623e030ddd4cc0cbfcac54ab0.zip cpython-a486054b24658fa623e030ddd4cc0cbfcac54ab0.tar.gz cpython-a486054b24658fa623e030ddd4cc0cbfcac54ab0.tar.bz2 |
bpo-43270: Remove private _PyErr_OCCURRED() macro (GH-24579)
Remove the private _PyErr_OCCURRED() macro: use the public
PyErr_Occurred() function instead.
CPython internals must use the internal _PyErr_Occurred(tstate)
function instead: it is the most efficient way to check if an
exception was raised.
-rw-r--r-- | Include/pyerrors.h | 6 | ||||
-rw-r--r-- | Misc/NEWS.d/next/C API/2021-02-19-14-28-26.bpo-43270.UKx4XN.rst | 2 | ||||
-rw-r--r-- | Python/ceval.c | 2 |
3 files changed, 3 insertions, 7 deletions
diff --git a/Include/pyerrors.h b/Include/pyerrors.h index 979a26b..692d671 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -30,12 +30,6 @@ PyAPI_FUNC(void) PyErr_SetExcInfo(PyObject *, PyObject *, PyObject *); macro is defined. */ PyAPI_FUNC(void) _Py_NO_RETURN Py_FatalError(const char *message); -#if defined(Py_DEBUG) || defined(Py_LIMITED_API) -#define _PyErr_OCCURRED() PyErr_Occurred() -#else -#define _PyErr_OCCURRED() (PyThreadState_GET()->curexc_type) -#endif - /* Error testing and normalization */ PyAPI_FUNC(int) PyErr_GivenExceptionMatches(PyObject *, PyObject *); PyAPI_FUNC(int) PyErr_ExceptionMatches(PyObject *); diff --git a/Misc/NEWS.d/next/C API/2021-02-19-14-28-26.bpo-43270.UKx4XN.rst b/Misc/NEWS.d/next/C API/2021-02-19-14-28-26.bpo-43270.UKx4XN.rst new file mode 100644 index 0000000..ab8c977 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-02-19-14-28-26.bpo-43270.UKx4XN.rst @@ -0,0 +1,2 @@ +Remove the private ``_PyErr_OCCURRED()`` macro: use the public +:c:func:`PyErr_Occurred` function instead. diff --git a/Python/ceval.c b/Python/ceval.c index 81a21c9..4771a51 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2750,7 +2750,7 @@ main_loop: (PyDictObject *)f->f_builtins, name); if (v == NULL) { - if (!_PyErr_OCCURRED()) { + if (!_PyErr_Occurred(tstate)) { /* _PyDict_LoadGlobal() returns NULL without raising * an exception if the key doesn't exist */ format_exc_check_arg(tstate, PyExc_NameError, |