| 320 | # |
| 321 | |
| 322 | class BufferWrapper(object): |
| 323 | |
| 324 | _heap = Heap() |
| 325 | |
| 326 | def __init__(self, size): |
| 327 | block = BufferWrapper._heap.malloc(size) |
| 328 | self._state = (block, size) |
| 329 | util.Finalize(self, BufferWrapper._heap.free, args=(block,)) |
| 330 | |
| 331 | def create_memoryview(self): |
| 332 | (arena, start, stop), size = self._state |
| 333 | return memoryview(arena.buffer)[start:start+size] |