[pypy-svn] r49215 - pypy/dist/pypy/annotation
arigo at codespeak.net
arigo at codespeak.net
Thu Nov 29 19:51:40 CET 2007
Author: arigo
Date: Thu Nov 29 19:51:37 2007
New Revision: 49215
Modified:
pypy/dist/pypy/annotation/bookkeeper.py
Log:
Don't catch and discard a RuntimeError - it could mask a real problem
like a stack overflow.
Modified: pypy/dist/pypy/annotation/bookkeeper.py
==============================================================================
--- pypy/dist/pypy/annotation/bookkeeper.py (original)
+++ pypy/dist/pypy/annotation/bookkeeper.py Thu Nov 29 19:51:37 2007
@@ -365,16 +365,15 @@
s_hashfn = self.immutablevalue(x.key_hash)
result.dictdef.dictkey.update_rdict_annotations(s_eqfn,
s_hashfn)
- done = False
- while not done:
- try:
- for ek, ev in x.iteritems():
- result.dictdef.generalize_key(self.immutablevalue(ek))
- result.dictdef.generalize_value(self.immutablevalue(ev))
- except RuntimeError, r:
- pass
- else:
- done = True
+ seen_elements = 0
+ while seen_elements != len(x):
+ items = x.items()
+ for ek, ev in items:
+ result.dictdef.generalize_key(self.immutablevalue(ek))
+ result.dictdef.generalize_value(self.immutablevalue(ev))
+ seen_elements = len(items)
+ # if the dictionary grew during the iteration,
+ # start over again
result.const_box = key
return result
else:
More information about the pypy-svn
mailing list