From: Benjamin Peterson Date: Tue, 26 May 2009 12:49:59 +0000 (+0000) Subject: teach the peepholer about SETUP_WITH X-Git-Tag: v2.7a1~1095 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aafa18aa057cff3e47914c962437c922ece87beb;p=python teach the peepholer about SETUP_WITH --- diff --git a/Python/peephole.c b/Python/peephole.c index a3dda9c8aa..13fc091032 100644 --- a/Python/peephole.c +++ b/Python/peephole.c @@ -259,6 +259,7 @@ markblocks(unsigned char *code, Py_ssize_t len) case SETUP_LOOP: case SETUP_EXCEPT: case SETUP_FINALLY: + case SETUP_WITH: j = GETJUMPTGT(code, i); blocks[j] = 1; break; @@ -550,6 +551,7 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names, case SETUP_LOOP: case SETUP_EXCEPT: case SETUP_FINALLY: + case SETUP_WITH: tgt = GETJUMPTGT(codestr, i); /* Replace JUMP_* to a RETURN into just a RETURN */ if (UNCONDITIONAL_JUMP(opcode) && @@ -628,6 +630,7 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names, case SETUP_LOOP: case SETUP_EXCEPT: case SETUP_FINALLY: + case SETUP_WITH: j = addrmap[GETARG(codestr, i) + i + 3] - addrmap[i] - 3; SETARG(codestr, i, j); break;