bpo-38644: Add _PyEval_EvalFrame() with tstate (GH-17131)

Add _PyEval_EvalFrame() static inline function to get eval_frame from
tstate->interp.
This commit is contained in:
Victor Stinner 2019-11-14 12:20:46 +01:00 committed by GitHub
parent 3ccdd9b180
commit b9e681261c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 7 deletions

View file

@ -1,6 +1,7 @@
/* Generator object implementation */
#include "Python.h"
#include "pycore_ceval.h" /* _PyEval_EvalFrame() */
#include "pycore_object.h"
#include "pycore_pystate.h"
#include "frameobject.h"
@ -219,7 +220,7 @@ gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing)
gen->gi_running = 1;
gen->gi_exc_state.previous_item = tstate->exc_info;
tstate->exc_info = &gen->gi_exc_state;
result = PyEval_EvalFrameEx(f, exc);
result = _PyEval_EvalFrame(tstate, f, exc);
tstate->exc_info = gen->gi_exc_state.previous_item;
gen->gi_exc_state.previous_item = NULL;
gen->gi_running = 0;