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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit