[3.11] GH-99460: Emscripten trampolines on optimized METH_O and METH_NOARGS code paths (gh-99461) (#99514)

Manual backport of GH-99461.
This commit is contained in:
Hood Chatham 2022-11-16 08:09:34 -08:00 committed by GitHub
parent 0a208d5e24
commit a06fb519af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5025,7 +5025,7 @@ handle_eval_breaker:
goto error;
}
PyObject *arg = TOP();
PyObject *res = cfunc(PyCFunction_GET_SELF(callable), arg);
PyObject *res = _PyCFunction_TrampolineCall(cfunc, PyCFunction_GET_SELF(callable), arg);
_Py_LeaveRecursiveCallTstate(tstate);
assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
@ -5226,7 +5226,7 @@ handle_eval_breaker:
if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
goto error;
}
PyObject *res = cfunc(self, arg);
PyObject *res = _PyCFunction_TrampolineCall(cfunc, self, arg);
_Py_LeaveRecursiveCallTstate(tstate);
assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
Py_DECREF(self);
@ -5298,7 +5298,7 @@ handle_eval_breaker:
if (_Py_EnterRecursiveCallTstate(tstate, " while calling a Python object")) {
goto error;
}
PyObject *res = cfunc(self, NULL);
PyObject *res = _PyCFunction_TrampolineCall(cfunc, self, NULL);
_Py_LeaveRecursiveCallTstate(tstate);
assert((res != NULL) ^ (_PyErr_Occurred(tstate) != NULL));
Py_DECREF(self);