[pypy-commit] pypy list-strategies: Check correct type with strategy instance instead of class
l.diekmann
noreply at buildbot.pypy.org
Fri Sep 23 13:12:20 CEST 2011
Author: Lukas Diekmann <lukas.diekmann at uni-duesseldorf.de>
Branch: list-strategies
Changeset: r47462:b9213520c508
Date: 2011-03-11 11:32 +0100
http://bitbucket.org/pypy/pypy/changeset/b9213520c508/
Log: Check correct type with strategy instance instead of class
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
@@ -17,7 +17,7 @@
strategy = space.fromcache(EmptyListStrategy)
storage = strategy.cast_to_void_star(None)
else:
- strategy = space.fromcache(RangeListStrategy)(space)
+ strategy = space.fromcache(RangeListStrategy)
storage = strategy.cast_to_void_star((start, step, length))
return W_ListObject.from_storage_and_strategy(space, storage, strategy)
@@ -474,7 +474,7 @@
assert slicelength >= 0
items = self.cast_from_void_star(w_list.storage)
- if (type(self) is not ObjectListStrategy and
+ if (self is not self.space.fromcache(ObjectListStrategy) and
not self.list_is_correct_type(W_ListObject(self.space, sequence_w)) and
len(sequence_w) != 0):
w_list.switch_to_object_strategy()
@@ -584,7 +584,7 @@
def wrap(self, item):
return item
- cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("object")
cast_to_void_star = staticmethod(cast_to_void_star)
cast_from_void_star = staticmethod(cast_from_void_star)
@@ -592,7 +592,7 @@
return True
def list_is_correct_type(self, w_list):
- return ObjectListStrategy is type(w_list.strategy)
+ return w_list.strategy is self.space.fromcache(ObjectListStrategy)
def init_from_list_w(self, w_list, list_w):
w_list.storage = self.cast_to_void_star(list_w)
@@ -605,7 +605,7 @@
def unwrap(self, w_int):
return self.space.int_w(w_int)
- cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("integer")
cast_to_void_star = staticmethod(cast_to_void_star)
cast_from_void_star = staticmethod(cast_from_void_star)
@@ -613,7 +613,7 @@
return is_W_IntObject(w_obj)
def list_is_correct_type(self, w_list):
- return IntegerListStrategy is type(w_list.strategy)
+ return w_list.strategy is self.space.fromcache(IntegerListStrategy)
class StringListStrategy(AbstractUnwrappedStrategy):
@@ -623,7 +623,7 @@
def unwrap(self, w_string):
return self.space.str_w(w_string)
- cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("range")
+ cast_to_void_star, cast_from_void_star = rerased.new_erasing_pair("string")
cast_to_void_star = staticmethod(cast_to_void_star)
cast_from_void_star = staticmethod(cast_from_void_star)
@@ -631,7 +631,7 @@
return is_W_StringObject(w_obj)
def list_is_correct_type(self, w_list):
- return StringListStrategy is type(w_list.strategy)
+ return w_list.strategy is self.space.fromcache(StringListStrategy)
# _______________________________________________________
More information about the pypy-commit
mailing list