summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-02-19 14:08:54 (GMT)
committerGitHub <noreply@github.com>2021-02-19 14:08:54 (GMT)
commita486054b24658fa623e030ddd4cc0cbfcac54ab0 (patch)
tree54fc80da26c870385352958e0da434174bb87b2d
parentacde3f1530f1664c9ec7f22e16a7f54c5191e4a6 (diff)
downloadcpython-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.h6
-rw-r--r--Misc/NEWS.d/next/C API/2021-02-19-14-28-26.bpo-43270.UKx4XN.rst2
-rw-r--r--Python/ceval.c2
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,