From: Neil Schemenauer Date: Fri, 30 May 2003 23:59:44 +0000 (+0000) Subject: Don't use fast_next_opcode for JUMP_* opcodes. This fixes the problem X-Git-Tag: v2.3c1~560 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca2a2f11d0ee7c8dee0f74d001c6f3f7d15adac9;p=python Don't use fast_next_opcode for JUMP_* opcodes. This fixes the problem reported by Kurt B. Kaiser. --- diff --git a/Python/ceval.c b/Python/ceval.c index abefd32f12..85e9e6b14d 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2001,18 +2001,18 @@ eval_frame(PyFrameObject *f) case JUMP_FORWARD: JUMPBY(oparg); - goto fast_next_opcode; + continue; PREDICTED_WITH_ARG(JUMP_IF_FALSE); case JUMP_IF_FALSE: w = TOP(); if (w == Py_True) { PREDICT(POP_TOP); - goto fast_next_opcode; + continue; } if (w == Py_False) { JUMPBY(oparg); - goto fast_next_opcode; + continue; } err = PyObject_IsTrue(w); if (err > 0) @@ -2028,11 +2028,11 @@ eval_frame(PyFrameObject *f) w = TOP(); if (w == Py_False) { PREDICT(POP_TOP); - goto fast_next_opcode; + continue; } if (w == Py_True) { JUMPBY(oparg); - goto fast_next_opcode; + continue; } err = PyObject_IsTrue(w); if (err > 0) { @@ -2047,7 +2047,7 @@ eval_frame(PyFrameObject *f) case JUMP_ABSOLUTE: JUMPTO(oparg); - goto fast_next_opcode; + continue; case GET_ITER: /* before: [obj]; after [getiter(obj)] */