diff options
author | Irit Katriel <1055913+iritkatriel@users.noreply.github.com> | 2021-12-17 14:46:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-17 14:46:22 +0000 |
commit | 396b58345f81d4c8c5a52546d2288e666a1b9b8b (patch) | |
tree | 89140d0930da874df676cfac27d2e85e746a5fc1 /Include/internal/pycore_pyerrors.h | |
parent | 62a0a2a25dbe3ba6f2973a37a3022d982fdc163c (diff) | |
download | cpython-396b58345f81d4c8c5a52546d2288e666a1b9b8b.tar.gz cpython-396b58345f81d4c8c5a52546d2288e666a1b9b8b.zip |
bpo-45711: Remove type and traceback from exc_info (GH-30122)
* Do not PUSH/POP traceback or type to the stack as part of exc_info
* Remove exc_traceback and exc_type from _PyErr_StackItem
* Add to what's new, because this change breaks things like Cython
Diffstat (limited to 'Include/internal/pycore_pyerrors.h')
-rw-r--r-- | Include/internal/pycore_pyerrors.h | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/Include/internal/pycore_pyerrors.h b/Include/internal/pycore_pyerrors.h index 5e8d2025dfa..b9fc36cf067 100644 --- a/Include/internal/pycore_pyerrors.h +++ b/Include/internal/pycore_pyerrors.h @@ -24,16 +24,7 @@ static inline PyObject* _PyErr_Occurred(PyThreadState *tstate) static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state) { - PyObject *t, *v, *tb; - t = exc_state->exc_type; - v = exc_state->exc_value; - tb = exc_state->exc_traceback; - exc_state->exc_type = NULL; - exc_state->exc_value = NULL; - exc_state->exc_traceback = NULL; - Py_XDECREF(t); - Py_XDECREF(v); - Py_XDECREF(tb); + Py_CLEAR(exc_state->exc_value); } PyAPI_FUNC(PyObject*) _PyErr_StackItemToExcInfoTuple( @@ -114,6 +105,7 @@ PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( #define _Py_FatalRefcountError(message) _Py_FatalRefcountErrorFunc(__func__, message) + #ifdef __cplusplus } #endif |