summaryrefslogtreecommitdiffstats
path: root/Python/errors.c
diff options
context:
space:
mode:
authorCarey Metcalfe <carey@cmetcalfe.ca>2023-12-21 01:46:41 (GMT)
committerGitHub <noreply@github.com>2023-12-21 01:46:41 (GMT)
commita2dd0e7038ad65a2464541f91604524d871d98a7 (patch)
tree467a8bfa7aac6a5b3e4ae3c37e237732bd1fcd7d /Python/errors.c
parent1ff02385944924db7e683a607da2882462594764 (diff)
downloadcpython-a2dd0e7038ad65a2464541f91604524d871d98a7.zip
cpython-a2dd0e7038ad65a2464541f91604524d871d98a7.tar.gz
cpython-a2dd0e7038ad65a2464541f91604524d871d98a7.tar.bz2
gh-111375: Use `NULL` rather than `None` in the exception stack to indicate that an exception was handled (#113302)
Diffstat (limited to 'Python/errors.c')
-rw-r--r--Python/errors.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Python/errors.c b/Python/errors.c
index ed5eec5..e5f176a 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -121,11 +121,11 @@ _PyErr_GetTopmostException(PyThreadState *tstate)
_PyErr_StackItem *exc_info = tstate->exc_info;
assert(exc_info);
- while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
- exc_info->previous_item != NULL)
+ while (exc_info->exc_value == NULL && exc_info->previous_item != NULL)
{
exc_info = exc_info->previous_item;
}
+ assert(!Py_IsNone(exc_info->exc_value));
return exc_info;
}
@@ -592,7 +592,7 @@ PyErr_GetHandledException(void)
void
_PyErr_SetHandledException(PyThreadState *tstate, PyObject *exc)
{
- Py_XSETREF(tstate->exc_info->exc_value, Py_XNewRef(exc));
+ Py_XSETREF(tstate->exc_info->exc_value, Py_XNewRef(exc == Py_None ? NULL : exc));
}
void