From b9e681261cd5ce6db0a79461c58d7cc52cfa4902 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 14 Nov 2019 12:20:46 +0100 Subject: bpo-38644: Add _PyEval_EvalFrame() with tstate (GH-17131) Add _PyEval_EvalFrame() static inline function to get eval_frame from tstate->interp. --- Python/ceval.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Python/ceval.c') 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 */ -- cgit v1.2.1