[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