From 1ee642211112c637e2b125dcc04b24f64984d749 Mon Sep 17 00:00:00 2001 From: Thomas Wouters Date: Mon, 24 Sep 2001 19:32:01 +0000 Subject: [PATCH] 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. --- Python/ceval.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Python/ceval.c b/Python/ceval.c index 3ca1e3e283..5a8f503eb7 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2217,8 +2217,8 @@ eval_frame(PyFrameObject *f) 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); -- 2.40.0