summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHood Chatham <roberthoodchatham@gmail.com>2022-11-15 17:53:39 (GMT)
committerGitHub <noreply@github.com>2022-11-15 17:53:39 (GMT)
commit86a49e06733b6ae9fef8de0c7e6db93ee87a2e32 (patch)
tree2078ba68f3064b6f870d4c370e0a69e712c714c4
parent65dab1506e9c8ac40b3f9da834121d86c6417275 (diff)
downloadcpython-86a49e06733b6ae9fef8de0c7e6db93ee87a2e32.zip
cpython-86a49e06733b6ae9fef8de0c7e6db93ee87a2e32.tar.gz
cpython-86a49e06733b6ae9fef8de0c7e6db93ee87a2e32.tar.bz2
gh-99460 Emscripten trampolines on optimized METH_O and METH_NOARGS code paths (#99461)
-rw-r--r--Python/bytecodes.c6
-rw-r--r--Python/generated_cases.c.h6
2 files changed, 6 insertions, 6 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c
index da3ab91..69ee741 100644
--- a/Python/bytecodes.c
+++ b/Python/bytecodes.c
@@ -3192,7 +3192,7 @@ dummy_func(
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));
@@ -3393,7 +3393,7 @@ dummy_func(
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);
@@ -3465,7 +3465,7 @@ dummy_func(
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);
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index 2ad7cc9..552d0e6 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -3201,7 +3201,7 @@
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));
@@ -3402,7 +3402,7 @@
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);
@@ -3474,7 +3474,7 @@
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);