Author: Lukas Diekmann <lukas.diekm...@uni-duesseldorf.de> Branch: list-strategies Changeset: r47514:527e4a735f22 Date: 2011-07-08 14:29 +0200 http://bitbucket.org/pypy/pypy/changeset/527e4a735f22/
Log: stop must not be smaller than start in rpython 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 @@ -518,12 +518,13 @@ getitems = getitems_copy def getslice(self, w_list, start, stop, step, length): - if step == 1: + if step == 1 and 0 <= start <= stop: l = self.cast_from_void_star(w_list.lstorage) assert start >= 0 assert stop >= 0 sublist = l[start:stop] storage = self.cast_to_void_star(sublist) + #XXX check of empty list? return W_ListObject.from_storage_and_strategy(self.space, storage, self) else: subitems_w = [None] * length diff --git a/pypy/objspace/std/test/test_listobject.py b/pypy/objspace/std/test/test_listobject.py --- a/pypy/objspace/std/test/test_listobject.py +++ b/pypy/objspace/std/test/test_listobject.py @@ -527,6 +527,7 @@ l = [1,2,3,4,5] assert l[1:0:None] == [] + assert l[1:0] == [] def test_delall(self): l = l0 = [1,2,3] _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit