Author: Philip Jenvey <pjen...@underboss.org> Branch: py3k Changeset: r64303:d1bd8ee630b6 Date: 2013-05-18 17:06 -0700 http://bitbucket.org/pypy/pypy/changeset/d1bd8ee630b6/
Log: merge default 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 @@ -1071,7 +1071,7 @@ w_mod = space.getbuiltinmodule('_pickle_support') mod = space.interp_w(MixedModule, w_mod) new_inst = mod.get('dictiter_surrogate_new') - w_typeobj = space.gettypeobject(W_BaseDictMultiIterObject.typedef) + w_typeobj = space.type(self) raise OperationError( space.w_TypeError, @@ -1079,12 +1079,15 @@ # XXXXXX get that working again # we cannot call __init__ since we don't have the original dict - if isinstance(self, W_DictIter_Keys): - w_clone = space.allocate_instance(W_DictIter_Keys, w_typeobj) - elif isinstance(self, W_DictIter_Values): - w_clone = space.allocate_instance(W_DictIter_Values, w_typeobj) - elif isinstance(self, W_DictIter_Items): - w_clone = space.allocate_instance(W_DictIter_Items, w_typeobj) + if isinstance(self, W_DictMultiIterKeysObject): + w_clone = space.allocate_instance(W_DictMultiIterKeysObject, + w_typeobj) + elif isinstance(self, W_DictMultiIterValuesObject): + w_clone = space.allocate_instance(W_DictMultiIterValuesObject, + w_typeobj) + elif isinstance(self, W_DictMultiIterItemsObject): + w_clone = space.allocate_instance(W_DictMultiIterItemsObject, + w_typeobj) else: msg = "unsupported dictiter type '%s' during pickling" % (self,) raise OperationError(space.w_TypeError, space.wrap(msg)) @@ -1131,21 +1134,24 @@ "dict_itemiterator", __iter__ = interp2app(W_DictMultiIterItemsObject.descr_iter), __next__ = interp2app(W_DictMultiIterItemsObject.descr_next), - __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint) + __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint), + __reduce__ = interp2app(W_BaseDictMultiIterObject.descr_reduce), ) W_DictMultiIterKeysObject.typedef = StdTypeDef( "dict_keyiterator", __iter__ = interp2app(W_DictMultiIterKeysObject.descr_iter), __next__ = interp2app(W_DictMultiIterKeysObject.descr_next), - __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint) + __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint), + __reduce__ = interp2app(W_BaseDictMultiIterObject.descr_reduce), ) W_DictMultiIterValuesObject.typedef = StdTypeDef( "dict_valueiterator", __iter__ = interp2app(W_DictMultiIterValuesObject.descr_iter), __next__ = interp2app(W_DictMultiIterValuesObject.descr_next), - __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint) + __length_hint__ = interp2app(W_BaseDictMultiIterObject.descr_length_hint), + __reduce__ = interp2app(W_BaseDictMultiIterObject.descr_reduce), ) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit