diff options
author | Jeffrey Yasskin <jyasskin@gmail.com> | 2009-02-28 19:49:43 +0000 |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@gmail.com> | 2009-02-28 19:49:43 +0000 |
commit | a0afc6e77038476a1f2e133a821e9176fd1fc31f (patch) | |
tree | 13257ab8219fc0d05e54dda6489eb2987c810288 /Python/peephole.c | |
parent | 5133b3a8aaa4544b0767c03289678d4b7b76a184 (diff) | |
download | cpython-a0afc6e77038476a1f2e133a821e9176fd1fc31f.tar.gz |
Fix 2 oversights from r69961.
Diffstat (limited to 'Python/peephole.c')
-rw-r--r-- | Python/peephole.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Python/peephole.c b/Python/peephole.c index c413fc8e87..de1b2aca0d 100644 --- a/Python/peephole.c +++ b/Python/peephole.c @@ -425,7 +425,7 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names, cumlc = lastlc + 1; j = GETARG(codestr, i); if (codestr[i+3] != POP_JUMP_IF_FALSE || - !ISBASICBLOCK(blocks,i,7) || + !ISBASICBLOCK(blocks,i,6) || !PyObject_IsTrue(PyList_GET_ITEM(consts, j))) continue; memset(codestr+i, NOP, 6); @@ -516,8 +516,10 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names, "if a or b:" "a and b or c" "(a and b) and c" - x:POP_OR_JUMP y y:POP_OR_JUMP z --> x:POP_OR_JUMP z - x:POP_OR_JUMP y y:JUMP_OR_POP z --> x:POP_JUMP_IF_FALSE y+3 + x:JUMP_IF_FALSE_OR_POP y y:JUMP_IF_FALSE_OR_POP z + --> x:JUMP_IF_FALSE_OR_POP z + x:JUMP_IF_FALSE_OR_POP y y:JUMP_IF_TRUE_OR_POP z + --> x:POP_JUMP_IF_FALSE y+3 where y+3 is the instruction following the second test. */ case JUMP_IF_FALSE_OR_POP: |