Closed
Description
class A:
def __buffer__(self, flags):
return memoryview(bytes(8))
def __release_buffer__(self, view):
pass # do not need to do anything here, just needs to exist
b = bytearray(8)
m = memoryview(b) # now b.extend will raise an exception due to exports
b.extend(A())
In a debug build this crashes with Assertion failed: (!PyErr_Occurred()), function _PyType_Lookup, file typeobject.c, line 4707.
Reported by @chilaxan. I'll work on a fix later today.
Most likely, the fix will be to call PyErr_Fetch
/PyErr_Restore
around calls to Python __release_buffer__
methods.
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status
Done