Author: Manuel Jacob Branch: remove-set-smm Changeset: r64128:d43e12bcb53a Date: 2013-05-15 11:06 +0200 http://bitbucket.org/pypy/pypy/changeset/d43e12bcb53a/
Log: Move (frozen)set's allocators into W_(Frozen)SetObject. diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py --- a/pypy/objspace/std/setobject.py +++ b/pypy/objspace/std/setobject.py @@ -412,16 +412,17 @@ W_SetObject.__init__(w_obj, space, w_iterable) return w_obj -def descr__new__(space, w_settype, __args__): - w_obj = space.allocate_instance(W_SetObject, w_settype) - W_SetObject.__init__(w_obj, space) - return w_obj + @staticmethod + def descr_new(space, w_settype, __args__): + w_obj = space.allocate_instance(W_SetObject, w_settype) + W_SetObject.__init__(w_obj, space) + return w_obj W_SetObject.typedef = StdTypeDef("set", __doc__ = """set(iterable) --> set object Build an unordered collection.""", - __new__ = gateway.interp2app(descr__new__), + __new__ = gateway.interp2app(W_SetObject.descr_new), __hash__ = None, # comparison operators @@ -476,6 +477,15 @@ W_FrozensetObject.__init__(w_obj, space, w_iterable) return w_obj + @staticmethod + def descr_new(space, w_frozensettype, w_iterable=None): + if (space.is_w(w_frozensettype, space.w_frozenset) and + w_iterable is not None and type(w_iterable) is W_FrozensetObject): + return w_iterable + w_obj = space.allocate_instance(W_FrozensetObject, w_frozensettype) + W_FrozensetObject.__init__(w_obj, space, w_iterable) + return w_obj + def descr_hash(self, space): multi = r_uint(1822399083) + r_uint(1822399083) + 1 if self.hash != 0: @@ -498,19 +508,11 @@ return space.wrap(hash) -def descr__frozenset__new__(space, w_frozensettype, w_iterable=None): - if (space.is_w(w_frozensettype, space.w_frozenset) and - w_iterable is not None and type(w_iterable) is W_FrozensetObject): - return w_iterable - w_obj = space.allocate_instance(W_FrozensetObject, w_frozensettype) - W_FrozensetObject.__init__(w_obj, space, w_iterable) - return w_obj - W_FrozensetObject.typedef = StdTypeDef("frozenset", __doc__ = """frozenset(iterable) --> frozenset object Build an immutable unordered collection.""", - __new__ = gateway.interp2app(descr__frozenset__new__), + __new__ = gateway.interp2app(W_FrozensetObject.descr_new), __hash__ = gateway.interp2app(W_FrozensetObject.descr_hash), # comparison operators _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit