[pypy-commit] pypy dynamic-specialized-tuple: remove special tuple iterator

alex_gaynor noreply at buildbot.pypy.org
Tue Mar 13 19:22:12 CET 2012


Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: dynamic-specialized-tuple
Changeset: r53458:61920c0a3cf5
Date: 2012-03-13 11:10 -0700
http://bitbucket.org/pypy/pypy/changeset/61920c0a3cf5/

Log:	remove special tuple iterator

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
@@ -34,17 +34,9 @@
     directly their RPython-level list of wrapped objects.
     """
 
-class W_FastTupleIterObject(W_AbstractSeqIterObject):
-   """Sequence iterator specialized for tuples, accessing
-   directly their RPython-level list of wrapped objects.
-   """ 
-   def __init__(w_self, w_seq, wrappeditems):
-        W_AbstractSeqIterObject.__init__(w_self, w_seq)
-        w_self.tupleitems = wrappeditems
-
 class W_ReverseSeqIterObject(W_Object):
     from pypy.objspace.std.itertype import reverse_iter_typedef as typedef
-    
+
     def __init__(w_self, space, w_seq, index=-1):
         w_self.w_seq = w_seq
         w_self.w_len = space.len(w_seq)
@@ -53,7 +45,6 @@
 
 registerimplementation(W_SeqIterObject)
 registerimplementation(W_FastListIterObject)
-registerimplementation(W_FastTupleIterObject)
 registerimplementation(W_ReverseSeqIterObject)
 
 def iter__SeqIter(space, w_seqiter):
@@ -61,15 +52,15 @@
 
 def next__SeqIter(space, w_seqiter):
     if w_seqiter.w_seq is None:
-        raise OperationError(space.w_StopIteration, space.w_None) 
+        raise OperationError(space.w_StopIteration, space.w_None)
     try:
         w_item = space.getitem(w_seqiter.w_seq, space.wrap(w_seqiter.index))
     except OperationError, e:
         w_seqiter.w_seq = None
         if not e.match(space, space.w_IndexError):
             raise
-        raise OperationError(space.w_StopIteration, space.w_None) 
-    w_seqiter.index += 1 
+        raise OperationError(space.w_StopIteration, space.w_None)
+    w_seqiter.index += 1
     return w_item
 
 # XXX __length_hint__()
@@ -77,26 +68,6 @@
 ##    return w_seqiter.getlength(space)
 
 
-def iter__FastTupleIter(space, w_seqiter):
-    return w_seqiter
-
-def next__FastTupleIter(space, w_seqiter):
-    if w_seqiter.tupleitems is None:
-        raise OperationError(space.w_StopIteration, space.w_None)
-    index = w_seqiter.index
-    try:
-        w_item = w_seqiter.tupleitems[index]
-    except IndexError:
-        w_seqiter.tupleitems = None
-        w_seqiter.w_seq = None
-        raise OperationError(space.w_StopIteration, space.w_None) 
-    w_seqiter.index = index + 1
-    return w_item
-
-# XXX __length_hint__()
-##def len__FastTupleIter(space, w_seqiter):
-##    return w_seqiter.getlength(space)
-
 
 def iter__FastListIter(space, w_seqiter):
     return w_seqiter
@@ -112,7 +83,7 @@
         w_item = w_seq.getitem(index)
     except IndexError:
         w_seqiter.w_seq = None
-        raise OperationError(space.w_StopIteration, space.w_None) 
+        raise OperationError(space.w_StopIteration, space.w_None)
     w_seqiter.index = index + 1
     return w_item
 
@@ -126,15 +97,15 @@
 
 def next__ReverseSeqIter(space, w_seqiter):
     if w_seqiter.w_seq is None or w_seqiter.index < 0:
-        raise OperationError(space.w_StopIteration, space.w_None) 
+        raise OperationError(space.w_StopIteration, space.w_None)
     try:
         w_item = space.getitem(w_seqiter.w_seq, space.wrap(w_seqiter.index))
-        w_seqiter.index -= 1 
+        w_seqiter.index -= 1
     except OperationError, e:
         w_seqiter.w_seq = None
         if not e.match(space, space.w_IndexError):
             raise
-        raise OperationError(space.w_StopIteration, space.w_None) 
+        raise OperationError(space.w_StopIteration, space.w_None)
     return w_item
 
 # XXX __length_hint__()
diff --git a/pypy/objspace/std/model.py b/pypy/objspace/std/model.py
--- a/pypy/objspace/std/model.py
+++ b/pypy/objspace/std/model.py
@@ -114,7 +114,6 @@
             setobject.W_SetIterObject: [],
             iterobject.W_SeqIterObject: [],
             iterobject.W_FastListIterObject: [],
-            iterobject.W_FastTupleIterObject: [],
             iterobject.W_ReverseSeqIterObject: [],
             unicodeobject.W_UnicodeObject: [],
             dictmultiobject.W_DictViewKeysObject: [],


More information about the pypy-commit mailing list