diff options
author | Raymond Hettinger <python@rcn.com> | 2012-04-23 00:22:48 -0700 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2012-04-23 00:22:48 -0700 |
commit | 016878aea6fb1904b8a04c7f56223c90cd8a0522 (patch) | |
tree | 9a26efef0ab8adaf26e07774f5332401ccef658f /Objects/frameobject.c | |
parent | 094c33f0472a3f9c0aed621a736d24760a5c4d60 (diff) | |
parent | ea17082c25a4835975537373454097b8dd054692 (diff) | |
download | cpython-git-016878aea6fb1904b8a04c7f56223c90cd8a0522.tar.gz |
merge
Diffstat (limited to 'Objects/frameobject.c')
-rw-r--r-- | Objects/frameobject.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Objects/frameobject.c b/Objects/frameobject.c index a3476cfff1..f9e4a0ead6 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -214,6 +214,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno) case SETUP_LOOP: case SETUP_EXCEPT: case SETUP_FINALLY: + case SETUP_WITH: blockstack[blockstack_top++] = addr; in_finally[blockstack_top-1] = 0; break; @@ -221,7 +222,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno) case POP_BLOCK: assert(blockstack_top > 0); setup_op = code[blockstack[blockstack_top-1]]; - if (setup_op == SETUP_FINALLY) { + if (setup_op == SETUP_FINALLY || setup_op == SETUP_WITH) { in_finally[blockstack_top-1] = 1; } else { @@ -236,7 +237,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno) * be seeing such an END_FINALLY.) */ if (blockstack_top > 0) { setup_op = code[blockstack[blockstack_top-1]]; - if (setup_op == SETUP_FINALLY) { + if (setup_op == SETUP_FINALLY || setup_op == SETUP_WITH) { blockstack_top--; } } @@ -298,6 +299,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno) case SETUP_LOOP: case SETUP_EXCEPT: case SETUP_FINALLY: + case SETUP_WITH: delta_iblock++; break; |