[pypy-svn] r8903 - pypy/dist/pypy/objspace/std

arigo at codespeak.net arigo at codespeak.net
Sat Feb 5 15:37:36 CET 2005


Author: arigo
Date: Sat Feb  5 15:37:35 2005
New Revision: 8903

Modified:
   pypy/dist/pypy/objspace/std/listobject.py
Log:
Re-enabled the various version of setitem__List_Slice_Xxx().  Fixed a typo in
the (now-commented-out) code.



Modified: pypy/dist/pypy/objspace/std/listobject.py
==============================================================================
--- pypy/dist/pypy/objspace/std/listobject.py	(original)
+++ pypy/dist/pypy/objspace/std/listobject.py	Sat Feb  5 15:37:35 2005
@@ -220,24 +220,21 @@
     items[idx] = w_any
     return space.w_None
 
-# XXX the following is disabled, so that 'setitem' can be a binary multimethod.
-##def setitem__List_Slice_List(space, w_list, w_slice, w_list2):
-##    return _setitem_slice_helper(space, w_list, w_slice, w_list2.ob_item, w_list2.ob_size)
-
-##def setitem__List_Slice_Tuple(space, w_list, w_slice, w_tuple):
-##    t = w_tuple.wrappeditems
-##    return _setitem_slice_helper(space, w_list, w_slice, t, len(t))
+def setitem__List_Slice_List(space, w_list, w_slice, w_list2):
+    return _setitem_slice_helper(space, w_list, w_slice, w_list2.ob_item, w_list2.ob_size)
+
+def setitem__List_Slice_Tuple(space, w_list, w_slice, w_tuple):
+    t = w_tuple.wrappeditems
+    return _setitem_slice_helper(space, w_list, w_slice, t, len(t))
 
 def setitem__List_Slice_ANY(space, w_list, w_slice, w_iterable):
-    # for performance, check for common cases of w_iterable
-    # (this used to be done by the disabled cases of 'setitem' above)
-    if isinstance(w_iterable, W_ListObject):
-        return _setitem_slice_helper(space, w_list, w_slice,
-                                     w_iterable.ob_item, w_iterable.ob_size)
-    if isinstance(w_iterable, W_TupleObject):
-        t = w_tuple.wrappeditems
-    else:
-        t = space.unpackiterable(w_iterable)
+##    if isinstance(w_iterable, W_ListObject):
+##        return _setitem_slice_helper(space, w_list, w_slice,
+##                                     w_iterable.ob_item, w_iterable.ob_size)
+##    if isinstance(w_iterable, W_TupleObject):
+##        t = w_iterable.wrappeditems
+##    else:
+    t = space.unpackiterable(w_iterable)
     return _setitem_slice_helper(space, w_list, w_slice, t, len(t))
 
 def _setitem_slice_helper(space, w_list, w_slice, sequence2, len2):



More information about the Pypy-commit mailing list