[pypy-commit] pypy py3.3: Make memoryview objects weakrefable
amauryfa
noreply at buildbot.pypy.org
Thu Jul 3 23:58:10 CEST 2014
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3.3
Changeset: r72340:b82a4b6b39d3
Date: 2014-06-22 20:18 +0200
http://bitbucket.org/pypy/pypy/changeset/b82a4b6b39d3/
Log: Make memoryview objects weakrefable
diff --git a/pypy/objspace/std/memoryobject.py b/pypy/objspace/std/memoryobject.py
--- a/pypy/objspace/std/memoryobject.py
+++ b/pypy/objspace/std/memoryobject.py
@@ -7,7 +7,7 @@
from pypy.interpreter.baseobjspace import W_Root
from pypy.interpreter.error import OperationError, oefmt
from pypy.interpreter.gateway import interp2app
-from pypy.interpreter.typedef import TypeDef, GetSetProperty
+from pypy.interpreter.typedef import TypeDef, GetSetProperty, make_weakref_descr
def _buffer_setitem(space, buf, w_index, w_obj):
@@ -173,6 +173,7 @@
__repr__ = interp2app(W_MemoryView.descr_repr),
__enter__ = interp2app(W_MemoryView.descr_enter),
__exit__ = interp2app(W_MemoryView.descr_exit),
+ __weakref__ = make_weakref_descr(W_MemoryView),
tobytes = interp2app(W_MemoryView.descr_tobytes),
tolist = interp2app(W_MemoryView.descr_tolist),
release = interp2app(W_MemoryView.descr_release),
diff --git a/pypy/objspace/std/test/test_memoryobject.py b/pypy/objspace/std/test/test_memoryobject.py
--- a/pypy/objspace/std/test/test_memoryobject.py
+++ b/pypy/objspace/std/test/test_memoryobject.py
@@ -87,6 +87,11 @@
def test_hash(self):
raises(TypeError, "hash(memoryview(b'hello'))")
+ def test_weakref(self):
+ import weakref
+ m = memoryview(b'hello')
+ weakref.ref(m)
+
def test_getitem_only_ints(self):
class MyInt(object):
def __init__(self, x):
More information about the pypy-commit
mailing list