Author: Armin Rigo <[email protected]>
Branch:
Changeset: r79887:4e688540cfe9
Date: 2015-09-29 09:07 +0200
http://bitbucket.org/pypy/pypy/changeset/4e688540cfe9/
Log: Move the slow-path loop out of this RPython function (oops, didn't
mean to check that in branch 'release-2.6.x')
diff --git a/pypy/objspace/std/listobject.py b/pypy/objspace/std/listobject.py
--- a/pypy/objspace/std/listobject.py
+++ b/pypy/objspace/std/listobject.py
@@ -1396,16 +1396,19 @@
else:
subitems_w = [self._none_value] * length
l = self.unerase(w_list.lstorage)
- for i in range(length):
- try:
- subitems_w[i] = l[start]
- start += step
- except IndexError:
- raise
+ self._fill_in_with_sliced_items(subitems_w, l, start, step, length)
storage = self.erase(subitems_w)
return W_ListObject.from_storage_and_strategy(
self.space, storage, self)
+ def _fill_in_with_sliced_items(self, subitems_w, l, start, step, length):
+ for i in range(length):
+ try:
+ subitems_w[i] = l[start]
+ start += step
+ except IndexError:
+ raise
+
def switch_to_next_strategy(self, w_list, w_sample_item):
w_list.switch_to_object_strategy()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit