diff options
Diffstat (limited to 'Python/ceval.c')
| -rw-r--r-- | Python/ceval.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index f80778c..ea4bd05 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2806,20 +2806,20 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)  fast_block_end:  		while (why != WHY_NOT && f->f_iblock > 0) { -			PyTryBlock *b = PyFrame_BlockPop(f); +			/* Peek at the current block. */ +			PyTryBlock *b = &f->f_blockstack[f->f_iblock - 1];  			assert(why != WHY_YIELD);  			if (b->b_type == SETUP_LOOP && why == WHY_CONTINUE) { -				/* For a continue inside a try block, -				   don't pop the block for the loop. */ -				PyFrame_BlockSetup(f, b->b_type, b->b_handler, -						   b->b_level);  				why = WHY_NOT;  				JUMPTO(PyInt_AS_LONG(retval));  				Py_DECREF(retval);  				break;  			} +			/* Now we have to pop the block. */ +			f->f_iblock--; +  			while (STACK_LEVEL() > b->b_level) {  				v = POP();  				Py_XDECREF(v);  | 
