From 080cb3268f770d2589ee350ace7f589927e8db98 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 14 Mar 2003 01:37:42 +0000 Subject: SF patch #701907: More use of fast_next_opcode My previous patches should have used fast_next_opcode in a few places instead of continue. Also, applied one PyInt_AS_LONG macro in a place where the type had already been checked. --- Python/ceval.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Python/ceval.c b/Python/ceval.c index 73743de..324008d 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -883,7 +883,7 @@ eval_frame(PyFrameObject *f) w = SECOND(); SET_TOP(w); SET_SECOND(v); - continue; + goto fast_next_opcode; case ROT_THREE: v = TOP(); @@ -892,7 +892,7 @@ eval_frame(PyFrameObject *f) SET_TOP(w); SET_SECOND(x); SET_THIRD(v); - continue; + goto fast_next_opcode; case ROT_FOUR: u = TOP(); @@ -903,13 +903,13 @@ eval_frame(PyFrameObject *f) SET_SECOND(w); SET_THIRD(x); SET_FOURTH(u); - continue; + goto fast_next_opcode; case DUP_TOP: v = TOP(); Py_INCREF(v); PUSH(v); - continue; + goto fast_next_opcode; case DUP_TOPX: if (oparg == 2) { @@ -1594,7 +1594,7 @@ eval_frame(PyFrameObject *f) case END_FINALLY: v = POP(); if (PyInt_Check(v)) { - why = (enum why_code) PyInt_AsLong(v); + why = (enum why_code) PyInt_AS_LONG(v); if (why == WHY_RETURN || why == WHY_YIELD || why == WHY_CONTINUE) @@ -1972,15 +1972,15 @@ eval_frame(PyFrameObject *f) case JUMP_FORWARD: JUMPBY(oparg); - continue; + goto fast_next_opcode; case JUMP_IF_FALSE: w = TOP(); if (w == Py_True) - continue; + goto fast_next_opcode; if (w == Py_False) { JUMPBY(oparg); - continue; + goto fast_next_opcode; } err = PyObject_IsTrue(w); if (err > 0) @@ -1994,10 +1994,10 @@ eval_frame(PyFrameObject *f) case JUMP_IF_TRUE: w = TOP(); if (w == Py_False) - continue; + goto fast_next_opcode; if (w == Py_True) { JUMPBY(oparg); - continue; + goto fast_next_opcode; } err = PyObject_IsTrue(w); if (err > 0) { @@ -2012,7 +2012,7 @@ eval_frame(PyFrameObject *f) case JUMP_ABSOLUTE: JUMPTO(oparg); - continue; + goto fast_next_opcode; case GET_ITER: /* before: [obj]; after [getiter(obj)] */ -- cgit v0.12