diff Python/ceval.c @ 20064:ef3034a60a3e legacy-trunk

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.
author Thomas Wouters <thomas@python.org>
date Mon, 24 Sep 2001 19:32:01 +0000
parents 3faabf54b8b8
children 233f9606ba8e
line wrap: on
line diff
--- a/Python/ceval.c	Mon Sep 24 18:47:40 2001 +0000
+++ b/Python/ceval.c	Mon Sep 24 19:32:01 2001 +0000
@@ -2217,8 +2217,8 @@
 			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_level,
-						   b->b_handler);
+				PyFrame_BlockSetup(f, b->b_type, b->b_handler,
+						   b->b_level);
 				why = WHY_NOT;
 				JUMPTO(PyInt_AS_LONG(retval));
 				Py_DECREF(retval);