_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)
/* Set these to invalid but identifiable values for debugging. */
tstate->current_frame = frame;
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() */
if (throwflag) {