[pypy-svn] r66893 - pypy/trunk/pypy/interpreter

benjamin at codespeak.net benjamin at codespeak.net
Tue Aug 18 14:34:10 CEST 2009


Author: benjamin
Date: Tue Aug 18 14:34:09 2009
New Revision: 66893

Modified:
   pypy/trunk/pypy/interpreter/generator.py
Log:
(arigo, benjamin) don't throw GeneratorExit when it's not possibly caught

Modified: pypy/trunk/pypy/interpreter/generator.py
==============================================================================
--- pypy/trunk/pypy/interpreter/generator.py	(original)
+++ pypy/trunk/pypy/interpreter/generator.py	Tue Aug 18 14:34:09 2009
@@ -2,6 +2,7 @@
 from pypy.interpreter.baseobjspace import Wrappable
 from pypy.interpreter.gateway import NoneNotWrapped
 from pypy.rlib.rarithmetic import intmask
+from pypy.interpreter.pyopcode import LoopBlock
 
 
 class GeneratorIterator(Wrappable):
@@ -126,4 +127,7 @@
 
     def __del__(self):
         if not self.frame.frame_finished_execution:
-            self._enqueue_for_destruction(self.space)
+            for block in self.frame.blockstack:
+                if not isinstance(block, LoopBlock):
+                    self._enqueue_for_destruction(self.space)
+                    break



More information about the Pypy-commit mailing list