@@ -183,45 +183,55 @@ PyTypeObject _PyManagedBuffer_Type = {
183
183
(((PyMemoryViewObject *)mv)->flags&_Py_MEMORYVIEW_RELEASED || \
184
184
((PyMemoryViewObject *)mv)->mbuf->flags&_Py_MANAGED_BUFFER_RELEASED)
185
185
186
- #define CHECK_RELEASED (mv ) \
187
- if (BASE_INACCESSIBLE(mv)) { \
188
- PyErr_SetString(PyExc_ValueError, \
189
- "operation forbidden on released memoryview object"); \
190
- return NULL; \
191
- }
186
+ #define CHECK_RELEASED (MV ) \
187
+ do { \
188
+ if (BASE_INACCESSIBLE(MV)) { \
189
+ PyErr_SetString(PyExc_ValueError, \
190
+ "operation forbidden on released memoryview object"); \
191
+ return NULL; \
192
+ } \
193
+ } while (0)
192
194
193
- #define CHECK_RELEASED_INT (mv ) \
194
- if (BASE_INACCESSIBLE(mv)) { \
195
- PyErr_SetString(PyExc_ValueError, \
196
- "operation forbidden on released memoryview object"); \
197
- return -1; \
198
- }
195
+ #define CHECK_RELEASED_INT (MV ) \
196
+ do { \
197
+ if (BASE_INACCESSIBLE(MV)) { \
198
+ PyErr_SetString(PyExc_ValueError, \
199
+ "operation forbidden on released memoryview object"); \
200
+ return -1; \
201
+ } \
202
+ } while (0)
199
203
200
- #define CHECK_RESTRICTED (mv ) \
201
- if (((PyMemoryViewObject *)(mv))->flags & _Py_MEMORYVIEW_RESTRICTED) { \
202
- PyErr_SetString(PyExc_ValueError, \
203
- "cannot create new view on restricted memoryview"); \
204
- return NULL; \
205
- }
204
+ #define CHECK_RESTRICTED (MV ) \
205
+ do { \
206
+ if (((PyMemoryViewObject *)(MV))->flags & _Py_MEMORYVIEW_RESTRICTED) { \
207
+ PyErr_SetString(PyExc_ValueError, \
208
+ "cannot create new view on restricted memoryview"); \
209
+ return NULL; \
210
+ } \
211
+ } while (0)
206
212
207
- #define CHECK_RESTRICTED_INT (mv ) \
208
- if (((PyMemoryViewObject *)(mv))->flags & _Py_MEMORYVIEW_RESTRICTED) { \
209
- PyErr_SetString(PyExc_ValueError, \
210
- "cannot create new view on restricted memoryview"); \
211
- return -1; \
212
- }
213
+ #define CHECK_RESTRICTED_INT (MV ) \
214
+ do { \
215
+ if (((PyMemoryViewObject *)(MV))->flags & _Py_MEMORYVIEW_RESTRICTED) { \
216
+ PyErr_SetString(PyExc_ValueError, \
217
+ "cannot create new view on restricted memoryview"); \
218
+ return -1; \
219
+ } \
220
+ } while (0)
213
221
214
222
/* See gh-92888. These macros signal that we need to check the memoryview
215
223
again due to possible read after frees. */
216
224
#define CHECK_RELEASED_AGAIN (mv ) CHECK_RELEASED(mv)
217
225
#define CHECK_RELEASED_INT_AGAIN (mv ) CHECK_RELEASED_INT(mv)
218
226
219
- #define CHECK_LIST_OR_TUPLE (v ) \
220
- if (!PyList_Check(v) && !PyTuple_Check(v)) { \
221
- PyErr_SetString(PyExc_TypeError, \
222
- #v " must be a list or a tuple"); \
223
- return NULL; \
224
- }
227
+ #define CHECK_LIST_OR_TUPLE (OBJ ) \
228
+ do { \
229
+ if (!PyList_Check(OBJ) && !PyTuple_Check(OBJ)) { \
230
+ PyErr_SetString(PyExc_TypeError, \
231
+ #OBJ " must be a list or a tuple"); \
232
+ return NULL; \
233
+ } \
234
+ } while (0)
225
235
226
236
#define VIEW_ADDR (mv ) (&((PyMemoryViewObject *)mv)->view)
227
237
@@ -1456,7 +1466,7 @@ memoryview_cast_impl(PyMemoryViewObject *self, PyObject *format,
1456
1466
return NULL ;
1457
1467
}
1458
1468
if (shape ) {
1459
- CHECK_LIST_OR_TUPLE (shape )
1469
+ CHECK_LIST_OR_TUPLE (shape );
1460
1470
ndim = PySequence_Fast_GET_SIZE (shape );
1461
1471
if (ndim > PyBUF_MAX_NDIM ) {
1462
1472
PyErr_SetString (PyExc_ValueError ,
0 commit comments