[pypy-svn] r75617 - pypy/branch/fast-forward/pypy/module/__builtin__
benjamin at codespeak.net
benjamin at codespeak.net
Sat Jun 26 00:30:55 CEST 2010
Author: benjamin
Date: Sat Jun 26 00:30:53 2010
New Revision: 75617
Modified:
pypy/branch/fast-forward/pypy/module/__builtin__/functional.py
Log:
some dances for old style classes
Modified: pypy/branch/fast-forward/pypy/module/__builtin__/functional.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/functional.py (original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/functional.py Sat Jun 26 00:30:53 2010
@@ -417,10 +417,16 @@
def reversed(space, w_sequence):
"""Return a iterator that yields items of sequence in reverse."""
- w_reversed_descr = space.lookup(w_sequence, "__reversed__")
- if w_reversed_descr is None:
- return space.wrap(W_ReversedIterator(space, w_sequence))
- return space.get_and_call_function(w_reversed_descr, w_sequence)
+ w_reversed = None
+ if space.is_oldstyle_instance(w_sequence):
+ w_reversed = space.findattr(w_sequence, space.wrap("__reversed__"))
+ else:
+ w_reversed_descr = space.lookup(w_sequence, "__reversed__")
+ if w_reversed_descr is not None:
+ w_reversed = space.get(w_reversed_descr, w_sequence)
+ if w_reversed is not None:
+ return space.call_function(w_reversed)
+ return space.wrap(W_ReversedIterator(space, w_sequence))
reversed.unwrap_spec = [ObjSpace, W_Root]
class W_ReversedIterator(Wrappable):
More information about the Pypy-commit
mailing list