[Numpy-svn] r5138 - branches/1.1.x/numpy/core/src
numpy-svn at scipy.org
numpy-svn at scipy.org
Wed May 7 16:12:58 EDT 2008
Author: oliphant
Date: 2008-05-07 15:12:49 -0500 (Wed, 07 May 2008)
New Revision: 5138
Modified:
branches/1.1.x/numpy/core/src/arrayobject.c
Log:
Apply a fix to PyArray_ToList to work with subclasses better.
Modified: branches/1.1.x/numpy/core/src/arrayobject.c
===================================================================
--- branches/1.1.x/numpy/core/src/arrayobject.c 2008-05-07 19:06:28 UTC (rev 5137)
+++ branches/1.1.x/numpy/core/src/arrayobject.c 2008-05-07 20:12:49 UTC (rev 5138)
@@ -1972,14 +1972,19 @@
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 = (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);
More information about the Numpy-svn
mailing list