diff options
author | Victor Stinner <vstinner@python.org> | 2019-11-14 12:20:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-14 12:20:46 +0100 |
commit | b9e681261cd5ce6db0a79461c58d7cc52cfa4902 (patch) | |
tree | f7ae0bd04938d34e7af64b9c7a02f2d0318aa558 /Python | |
parent | 3ccdd9b180f9a3f29c8ddc8ad1b331fe8df26519 (diff) | |
download | cpython-git-b9e681261cd5ce6db0a79461c58d7cc52cfa4902.tar.gz |
bpo-38644: Add _PyEval_EvalFrame() with tstate (GH-17131)
Add _PyEval_EvalFrame() static inline function to get eval_frame from
tstate->interp.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index 4d8f1b913c..046cd69151 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -722,18 +722,20 @@ PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals) /* Interpreter main loop */ PyObject * -PyEval_EvalFrame(PyFrameObject *f) { +PyEval_EvalFrame(PyFrameObject *f) +{ /* This is for backward compatibility with extension modules that used this API; core interpreter code should call PyEval_EvalFrameEx() */ - return PyEval_EvalFrameEx(f, 0); + PyThreadState *tstate = _PyThreadState_GET(); + return _PyEval_EvalFrame(tstate, f, 0); } PyObject * PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) { - PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE(); - return interp->eval_frame(f, throwflag); + PyThreadState *tstate = _PyThreadState_GET(); + return _PyEval_EvalFrame(tstate, f, throwflag); } PyObject* _Py_HOT_FUNCTION @@ -4295,7 +4297,7 @@ _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals, return gen; } - retval = PyEval_EvalFrameEx(f,0); + retval = _PyEval_EvalFrame(tstate, f, 0); fail: /* Jump here from prelude on failure */ |