From de3c806965f907981d5cb5d49fc139845cd94aba Mon Sep 17 00:00:00 2001 From: Damien George Date: Sun, 26 Oct 2014 13:20:50 +0000 Subject: py: Fix memoryview referencing so it retains ptr to original buffer. This way, if original parent object is GC'd, the memoryview still points to the underlying buffer data so that buffer is not GC'd. --- tests/basics/memoryview_gc.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tests/basics/memoryview_gc.py (limited to 'tests/basics/memoryview_gc.py') diff --git a/tests/basics/memoryview_gc.py b/tests/basics/memoryview_gc.py new file mode 100644 index 000000000..a1e4baad4 --- /dev/null +++ b/tests/basics/memoryview_gc.py @@ -0,0 +1,18 @@ +# test memoryview retains pointer to original object/buffer + +b = bytearray(10) +m = memoryview(b)[1:] +for i in range(len(m)): + m[i] = i + +# reclaim b, but hopefully not the buffer +b = None +import gc +gc.collect() + +# allocate lots of memory +for i in range(100000): + [42, 42, 42, 42] + +# check that the memoryview is still what we want +print(list(m)) -- cgit v1.2.3