]> granicus.if.org Git - python/commitdiff
teach the peepholer about SETUP_WITH
authorBenjamin Peterson <benjamin@python.org>
Tue, 26 May 2009 12:49:59 +0000 (12:49 +0000)
committerBenjamin Peterson <benjamin@python.org>
Tue, 26 May 2009 12:49:59 +0000 (12:49 +0000)
Python/peephole.c

index a3dda9c8aaf4a20cdb7a5d7aa8433ce31f7e1280..13fc09103259d24c4f2382c8662652c07b1e9d47 100644 (file)
@@ -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;