return err; \
} \
} while (0)
+#define CHECK_VALID_OR_RELEASE(err, buffer) \
+do { \
+ if (self->map_handle == NULL) { \
+ PyErr_SetString(PyExc_ValueError, "mmap closed or invalid"); \
+ PyBuffer_Release(&(buffer)); \
+ return (err); \
+ } \
+} while (0)
#endif /* MS_WINDOWS */
#ifdef UNIX
return err; \
} \
} while (0)
+#define CHECK_VALID_OR_RELEASE(err, buffer) \
+do { \
+ if (self->data == NULL) { \
+ PyErr_SetString(PyExc_ValueError, "mmap closed or invalid"); \
+ PyBuffer_Release(&(buffer)); \
+ return (err); \
+ } \
+} while (0)
#endif /* UNIX */
static PyObject *
end = self->size;
Py_ssize_t res;
- CHECK_VALID(NULL);
+ CHECK_VALID_OR_RELEASE(NULL, view);
if (reverse) {
res = _PyBytes_ReverseFind(
self->data + start, end - start,
return NULL;
}
- CHECK_VALID(NULL);
+ CHECK_VALID_OR_RELEASE(NULL, data);
memcpy(&self->data[self->pos], data.buf, data.len);
self->pos += data.len;
PyBuffer_Release(&data);
return -1;
}
- CHECK_VALID(-1);
+ CHECK_VALID_OR_RELEASE(-1, vbuf);
if (slicelen == 0) {
}
else if (step == 1) {