Author: Armin Rigo <ar...@tunes.org> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit