diff options
Diffstat (limited to 'numpy/core/src/arrayobject.c')
-rw-r--r-- | numpy/core/src/arrayobject.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/numpy/core/src/arrayobject.c b/numpy/core/src/arrayobject.c index d83f7bda8..82652aaed 100644 --- a/numpy/core/src/arrayobject.c +++ b/numpy/core/src/arrayobject.c @@ -1972,20 +1972,15 @@ PyArray_ToList(PyArrayObject *self) sz = self->dimensions[0]; lp = PyList_New(sz); for(i = 0; i < sz; i++) { - if (PyArray_CheckExact(self)) { - v=(PyArrayObject *)array_big_item(self, i); + v = (PyArrayObject *)array_big_item(self, i); + if (PyArray_Check(v) && (v->nd >= self->nd)) { + PyErr_SetString(PyExc_RuntimeError, + "array_item not returning smaller-" \ + "dimensional array"); + Py_DECREF(v); + Py_DECREF(lp); + return NULL; } - else { - v = (PyArrayObject *)PySequence_GetItem((PyObject *)self, i); - if ((!PyArray_Check(v)) || (v->nd >= self->nd)) { - PyErr_SetString(PyExc_RuntimeError, - "array_item not returning smaller-" \ - "dimensional array"); - Py_DECREF(v); - Py_DECREF(lp); - return NULL; - } - } PyList_SetItem(lp, i, PyArray_ToList(v)); Py_DECREF(v); } |