Author: Armin Rigo <ar...@tunes.org> Branch: release-2.1.x Changeset: r65831:a5db735cb628 Date: 2013-07-30 20:09 +0200 http://bitbucket.org/pypy/pypy/changeset/a5db735cb628/
Log: Argh. Turning "try: list[index]; except IndexError" into "try: method(index); except IndexError" just doesn't work in RPython after translation. Grrr. diff --git a/rpython/jit/metainterp/optimizeopt/virtualstate.py b/rpython/jit/metainterp/optimizeopt/virtualstate.py --- a/rpython/jit/metainterp/optimizeopt/virtualstate.py +++ b/rpython/jit/metainterp/optimizeopt/virtualstate.py @@ -195,11 +195,10 @@ raise BadVirtualState if not value.is_virtual(): raise BadVirtualState + if len(self.fieldstate) > value.getlength(): + raise BadVirtualState for i in range(len(self.fieldstate)): - try: - v = value.get_item_value(i) - except IndexError: - raise BadVirtualState + v = value.get_item_value(i) s = self.fieldstate[i] if s.position > self.position: s.enum_forced_boxes(boxes, v, optimizer) @@ -269,13 +268,13 @@ raise BadVirtualState if not value.is_virtual(): raise BadVirtualState + if len(self.fielddescrs) > len(value._items): + raise BadVirtualState p = 0 for i in range(len(self.fielddescrs)): for j in range(len(self.fielddescrs[i])): try: v = value._items[i][self.fielddescrs[i][j]] - except IndexError: - raise BadVirtualState except KeyError: raise BadVirtualState s = self.fieldstate[p] _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit