[Python-checkins] CVS: python/dist/src/Python ceval.c,2.276,2.277

Thomas Wouters twouters@users.sourceforge.net
Mon, 24 Sep 2001 12:32:03 -0700


Update of /cvsroot/python/python/dist/src/Python
In directory usw-pr-cvs1:/tmp/cvs-serv1098/Python

Modified Files:
	ceval.c 
Log Message:


Don't swap the arguments to PyFrame_BlockSetup when recreating the recently
popped frame-block. What an embarrassing bug! Especially for Jeremy, since
he accepted the patch :-)

This fixes SF bugs #463359 and #462937, and possibly other, *very* obscure
bugs with very deeply nested loops that continue the loop and then break out
of it or raise an exception.



Index: ceval.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/ceval.c,v
retrieving revision 2.276
retrieving revision 2.277
diff -C2 -d -r2.276 -r2.277
*** ceval.c	2001/09/20 20:46:19	2.276
--- ceval.c	2001/09/24 19:32:01	2.277
***************
*** 2218,2223 ****
  				/* For a continue inside a try block,
  				   don't pop the block for the loop. */
! 				PyFrame_BlockSetup(f, b->b_type, b->b_level,
! 						   b->b_handler);
  				why = WHY_NOT;
  				JUMPTO(PyInt_AS_LONG(retval));
--- 2218,2223 ----
  				/* 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));