mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
GH-128563: Simplify recursion check in _PyEval_EvalFrameDefault
(GH-129481)
Simplify recursion check in _PyEval_EvalFrameDefault
This commit is contained in:
parent
31c82c28f9
commit
c3ae5c9e4a
1 changed files with 5 additions and 6 deletions
|
@ -786,7 +786,11 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
|
||||||
|
|
||||||
_PyInterpreterFrame entry_frame;
|
_PyInterpreterFrame entry_frame;
|
||||||
|
|
||||||
|
if (_Py_EnterRecursiveCallTstate(tstate, "")) {
|
||||||
|
assert(frame->owner != FRAME_OWNED_BY_INTERPRETER);
|
||||||
|
_PyEval_FrameClearAndPop(tstate, frame);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(Py_DEBUG) && !defined(Py_STACKREF_DEBUG)
|
#if defined(Py_DEBUG) && !defined(Py_STACKREF_DEBUG)
|
||||||
/* Set these to invalid but identifiable values for debugging. */
|
/* Set these to invalid but identifiable values for debugging. */
|
||||||
|
@ -811,11 +815,6 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int
|
||||||
tstate->current_frame = frame;
|
tstate->current_frame = frame;
|
||||||
|
|
||||||
tstate->c_recursion_remaining -= (PY_EVAL_C_STACK_UNITS - 1);
|
tstate->c_recursion_remaining -= (PY_EVAL_C_STACK_UNITS - 1);
|
||||||
if (_Py_EnterRecursiveCallTstate(tstate, "")) {
|
|
||||||
tstate->c_recursion_remaining--;
|
|
||||||
tstate->py_recursion_remaining--;
|
|
||||||
goto exit_unwind;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* support for generator.throw() */
|
/* support for generator.throw() */
|
||||||
if (throwflag) {
|
if (throwflag) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue