From f669436189dd44a841caa9ab1ad97a3f7662bf58 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 10 Mar 2006 02:28:35 +0000 Subject: Um, I thought I'd already checked this in. Anyway, this is the changes to the with-statement so that __exit__ must return a true value in order for a pending exception to be ignored. The PEP (343) is already updated. --- Lib/compiler/pyassem.py | 2 +- Lib/compiler/pycodegen.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) (limited to 'Lib/compiler') diff --git a/Lib/compiler/pyassem.py b/Lib/compiler/pyassem.py index b59661f4e1..82ff396648 100644 --- a/Lib/compiler/pyassem.py +++ b/Lib/compiler/pyassem.py @@ -779,7 +779,7 @@ class StackDepthTracker: 'SETUP_EXCEPT': 3, 'SETUP_FINALLY': 3, 'FOR_ITER': 1, - 'WITH_CLEANUP': 3, + 'WITH_CLEANUP': -1, } # use pattern match patterns = [ diff --git a/Lib/compiler/pycodegen.py b/Lib/compiler/pycodegen.py index a1236de634..2b3a24f744 100644 --- a/Lib/compiler/pycodegen.py +++ b/Lib/compiler/pycodegen.py @@ -858,8 +858,6 @@ class CodeGenerator: self.nextBlock(final) self.setups.push((END_FINALLY, final)) self.emit('WITH_CLEANUP') - self.emit('CALL_FUNCTION', 3) - self.emit('POP_TOP') self.emit('END_FINALLY') self.setups.pop() self.__with_count -= 1 -- cgit v1.2.1