diff options
author | Travis Oliphant <oliphant@enthought.com> | 2008-05-07 20:24:34 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2008-05-07 20:24:34 +0000 |
commit | c32a389417cd22a7fca720f2b1505acbe8560b3d (patch) | |
tree | 57ec5166c87bfdb9f4dc4567daf530c2682f842b /numpy/core/src/arrayobject.c | |
parent | 7c99e67bb87381a4622cde5e2d244a5f64882485 (diff) | |
download | numpy-c32a389417cd22a7fca720f2b1505acbe8560b3d.tar.gz |
* Make matrices return 1-dimensional array on item selection for 1.2\n * Remove (now un-needed) tolist method from matrices\n * For ticket #551, copy data if start of memory is not aligned on itemsize location in optimized blas wrapper.
Diffstat (limited to 'numpy/core/src/arrayobject.c')
-rw-r--r-- | numpy/core/src/arrayobject.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/numpy/core/src/arrayobject.c b/numpy/core/src/arrayobject.c index 09d52fafa..867b32b65 100644 --- a/numpy/core/src/arrayobject.c +++ b/numpy/core/src/arrayobject.c @@ -1972,14 +1972,19 @@ PyArray_ToList(PyArrayObject *self) sz = self->dimensions[0]; lp = PyList_New(sz); for(i = 0; i < sz; i++) { - v=(PyArrayObject *)array_big_item(self, i); - if (v->nd >= self->nd) { - PyErr_SetString(PyExc_RuntimeError, - "array_item not returning smaller-" \ - "dimensional array"); - Py_DECREF(v); - Py_DECREF(lp); - return NULL; + if (PyArray_CheckExact(self)) { + v=(PyArrayObject *)array_big_item(self, i); + } + else { + v = 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); |