]> granicus.if.org Git - python/commitdiff
Don't use fast_next_opcode for JUMP_* opcodes. This fixes the problem
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>
Fri, 30 May 2003 23:59:44 +0000 (23:59 +0000)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>
Fri, 30 May 2003 23:59:44 +0000 (23:59 +0000)
reported by Kurt B. Kaiser.

Python/ceval.c

index abefd32f12a9bf83a8066ccfd44771a49f224022..85e9e6b14da8203123677f42a0107f7ae0bcac2c 100644 (file)
@@ -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)] */