Commit 8f4ec8d3 authored by Victor Stinner's avatar Victor Stinner

Issue #22290: PyObject_Call() now fails with an assertion error when called

with an exception set. This new assertion helps to understand if the exception
was already set before calling the function or raised by the function.
parent 47e40429
......@@ -2074,6 +2074,11 @@ PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw)
{
ternaryfunc call;
/* PyObject_Call() must not be called with an exception set,
because it may clear it (directly or indirectly) and so the
caller looses its exception */
assert(!PyErr_Occurred());
if ((call = func->ob_type->tp_call) != NULL) {
PyObject *result;
if (Py_EnterRecursiveCall(" while calling a Python object"))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment