diff options
| author | Damien George <damien.p.george@gmail.com> | 2014-10-26 13:20:50 +0000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2014-10-26 13:20:50 +0000 |
| commit | de3c806965f907981d5cb5d49fc139845cd94aba (patch) | |
| tree | 8fcf9dc7695295c6a5cc3d530d28ca27586a6a36 /tests | |
| parent | c76af32575b0a897b4fdbb7b9c2d0754a8df5399 (diff) | |
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.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/basics/memoryview_gc.py | 18 |
1 files changed, 18 insertions, 0 deletions
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)) |
