--- /dev/null
+Fix a crash when sharing :class:`memoryview` objects between interpreters
+fails due to running out of memory. It now raises a proper
+:exc:`MemoryError`.
Py_buffer *copied = PyMem_RawMalloc(sizeof(Py_buffer));
if (copied == NULL) {
- return NULL;
+ return PyErr_NoMemory();
}
/* This steals the view->obj reference */
*copied = *view;
xibufferview *self = PyObject_Malloc(sizeof(xibufferview));
if (self == NULL) {
PyMem_RawFree(copied);
- return NULL;
+ return PyErr_NoMemory();
}
PyObject_Init(&self->base, cls);
*self = (xibufferview){
{
struct xibuffer *view = PyMem_RawMalloc(sizeof(struct xibuffer));
if (view == NULL) {
+ PyErr_NoMemory();
return -1;
}
view->used = 0;