summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/multiarray/ctors.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c
index 57cfa1e36..7907fb930 100644
--- a/numpy/core/src/multiarray/ctors.c
+++ b/numpy/core/src/multiarray/ctors.c
@@ -668,6 +668,14 @@ PyArray_NewFromDescr_int(
int i;
npy_intp nbytes;
+ if ((unsigned int)nd > (unsigned int)NPY_MAXDIMS) {
+ PyErr_Format(PyExc_ValueError,
+ "number of dimensions must be within [0, %d]",
+ NPY_MAXDIMS);
+ Py_DECREF(descr);
+ return NULL;
+ }
+
if (descr->subarray) {
PyObject *ret;
npy_intp newdims[2*NPY_MAXDIMS];
@@ -687,14 +695,6 @@ PyArray_NewFromDescr_int(
return ret;
}
- if ((unsigned int)nd > (unsigned int)NPY_MAXDIMS) {
- PyErr_Format(PyExc_ValueError,
- "number of dimensions must be within [0, %d]",
- NPY_MAXDIMS);
- Py_DECREF(descr);
- return NULL;
- }
-
/* Check datatype element size */
nbytes = descr->elsize;
if (PyDataType_ISUNSIZED(descr)) {