[pypy-commit] pypy list-strategies: Cast sequence to W_ListObject (translation fix)

l.diekmann noreply at buildbot.pypy.org
Fri Sep 23 13:12:21 CEST 2011


Author: Lukas Diekmann <lukas.diekmann at uni-duesseldorf.de>
Branch: list-strategies
Changeset: r47463:eb7765a263ed
Date: 2011-03-15 14:47 +0100
http://bitbucket.org/pypy/pypy/changeset/eb7765a263ed/

Log:	Cast sequence to W_ListObject (translation fix)

diff --git a/pypy/objspace/std/iterobject.py b/pypy/objspace/std/iterobject.py
--- a/pypy/objspace/std/iterobject.py
+++ b/pypy/objspace/std/iterobject.py
@@ -102,14 +102,16 @@
     return w_seqiter
 
 def next__FastListIter(space, w_seqiter):
-    if w_seqiter.w_seq is None:
+    from pypy.objspace.std.listobject import W_ListObject
+    w_seq = w_seqiter.w_seq
+    if w_seq is None:
         raise OperationError(space.w_StopIteration, space.w_None)
+    assert isinstance(w_seq, W_ListObject)
     index = w_seqiter.index
     try:
-        w_item = w_seqiter.w_seq.getitem(index)
+        w_item = w_seq.getitem(index)
     except IndexError:
         w_seqiter.w_seq = None
-        w_seqiter.w_seq = None
         raise OperationError(space.w_StopIteration, space.w_None) 
     w_seqiter.index = index + 1
     return w_item


More information about the pypy-commit mailing list