Author: Manuel Jacob Branch: remove-dict-smm Changeset: r64200:fb15279ae6e2 Date: 2013-05-15 21:12 +0200 http://bitbucket.org/pypy/pypy/changeset/fb15279ae6e2/
Log: Remove dict from multi-method table. diff --git a/pypy/objspace/std/dictmultiobject.py b/pypy/objspace/std/dictmultiobject.py --- a/pypy/objspace/std/dictmultiobject.py +++ b/pypy/objspace/std/dictmultiobject.py @@ -1,8 +1,8 @@ from pypy.interpreter import gateway +from pypy.interpreter.baseobjspace import W_Root from pypy.interpreter.error import OperationError, operationerrfmt from pypy.interpreter.mixedmodule import MixedModule from pypy.interpreter.signature import Signature -from pypy.objspace.std.model import registerimplementation, W_Object from pypy.objspace.std.stdtypedef import StdTypeDef from rpython.rlib import rerased, jit @@ -40,7 +40,7 @@ w_dct.length() <= UNROLL_CUTOFF) -class W_DictMultiObject(W_Object): +class W_DictMultiObject(W_Root): @staticmethod def allocate_and_init_instance(space, w_type=None, module=False, instance=False, strdict=False, kwargs=False): @@ -414,9 +414,6 @@ setdefault = gateway.interp2app(W_DictMultiObject.descr_setdefault), update = gateway.interp2app(W_DictMultiObject.descr_update), ) -dict_typedef = W_DictMultiObject.typedef - -registerimplementation(W_DictMultiObject) class DictStrategy(object): @@ -1106,7 +1103,7 @@ # ____________________________________________________________ # Iteration -class W_BaseDictMultiIterObject(W_Object): +class W_BaseDictMultiIterObject(W_Root): _immutable_fields_ = ["iteratorimplementation"] ignore_for_isinstance_cache = True @@ -1203,10 +1200,6 @@ return space.newtuple([w_key, w_value]) raise OperationError(space.w_StopIteration, space.w_None) -registerimplementation(W_DictMultiIterKeysObject) -registerimplementation(W_DictMultiIterValuesObject) -registerimplementation(W_DictMultiIterItemsObject) - W_DictMultiIterItemsObject.typedef = StdTypeDef( "dict_iteritems", __iter__ = gateway.interp2app(W_DictMultiIterItemsObject.descr_iter), @@ -1229,7 +1222,7 @@ # ____________________________________________________________ # Views -class W_DictViewObject(W_Object): +class W_DictViewObject(W_Root): def __init__(w_self, space, w_dict): w_self.w_dict = w_dict @@ -1276,17 +1269,14 @@ class W_DictViewItemsObject(W_DictViewObject): def descr_iter(self, space): return W_DictMultiIterItemsObject(space, self.w_dict.iteritems()) -registerimplementation(W_DictViewItemsObject) class W_DictViewKeysObject(W_DictViewObject): def descr_iter(self, space): return W_DictMultiIterKeysObject(space, self.w_dict.iterkeys()) -registerimplementation(W_DictViewKeysObject) class W_DictViewValuesObject(W_DictViewObject): def descr_iter(self, space): return W_DictMultiIterValuesObject(space, self.w_dict.itervalues()) -registerimplementation(W_DictViewValuesObject) W_DictViewItemsObject.typedef = StdTypeDef( "dict_items", diff --git a/pypy/objspace/std/model.py b/pypy/objspace/std/model.py --- a/pypy/objspace/std/model.py +++ b/pypy/objspace/std/model.py @@ -40,7 +40,6 @@ from pypy.objspace.std.complextype import complex_typedef from pypy.objspace.std.tupletype import tuple_typedef from pypy.objspace.std.listobject import list_typedef - from pypy.objspace.std.dictmultiobject import dict_typedef from pypy.objspace.std.basestringtype import basestring_typedef from pypy.objspace.std.stringtype import str_typedef from pypy.objspace.std.bytearraytype import bytearray_typedef @@ -81,6 +80,7 @@ # not-multimethod based types + self.pythontypes.append(dictmultiobject.W_DictMultiObject.typedef) self.pythontypes.append(setobject.W_SetObject.typedef) self.pythontypes.append(setobject.W_FrozensetObject.typedef) @@ -92,10 +92,6 @@ floatobject.W_FloatObject: [], tupleobject.W_TupleObject: [], listobject.W_ListObject: [], - dictmultiobject.W_DictMultiObject: [], - dictmultiobject.W_DictMultiIterKeysObject: [], - dictmultiobject.W_DictMultiIterValuesObject: [], - dictmultiobject.W_DictMultiIterItemsObject: [], stringobject.W_StringObject: [], bytearrayobject.W_BytearrayObject: [], typeobject.W_TypeObject: [], @@ -108,9 +104,6 @@ iterobject.W_FastTupleIterObject: [], iterobject.W_ReverseSeqIterObject: [], unicodeobject.W_UnicodeObject: [], - dictmultiobject.W_DictViewKeysObject: [], - dictmultiobject.W_DictViewItemsObject: [], - dictmultiobject.W_DictViewValuesObject: [], pypy.interpreter.pycode.PyCode: [], pypy.interpreter.special.Ellipsis: [], } _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit