[Numpy-svn] r3445 - trunk/numpy/core/src

numpy-svn at scipy.org numpy-svn at scipy.org
Fri Nov 17 14:39:04 EST 2006


Author: oliphant
Date: 2006-11-17 13:39:02 -0600 (Fri, 17 Nov 2006)
New Revision: 3445

Modified:
   trunk/numpy/core/src/multiarraymodule.c
Log:
Understand array's of ctypes types.

Modified: trunk/numpy/core/src/multiarraymodule.c
===================================================================
--- trunk/numpy/core/src/multiarraymodule.c	2006-11-17 19:28:56 UTC (rev 3444)
+++ trunk/numpy/core/src/multiarraymodule.c	2006-11-17 19:39:02 UTC (rev 3445)
@@ -50,8 +50,24 @@
         if (dtypedescr) {
                 ret = PyArray_DescrConverter(dtypedescr, &new);
                 Py_DECREF(dtypedescr);
-                if (ret == PY_SUCCEED) return new;
+                if (ret == PY_SUCCEED) {
+                        PyObject *length;
+                        length = PyObject_GetAttrString(obj, "_length_");
+                        PyErr_Clear();
+                        if (length) { /* derived type */
+                                PyObject *newtup;
+                                PyArray_Descr *derived;
+                                newtup = Py_BuildValue("NO", new, length);
+                                ret = PyArray_DescrConverter(newtup, &derived);
+                                Py_DECREF(newtup);
+                                if (ret == PY_SUCCEED) return derived;
+                                PyErr_Clear();
+                                return NULL;
+                        }
+                        return new;
+                }
                 PyErr_Clear();
+                return NULL;
         }
         /* Understand ctypes structures --
            bit-fields are not supported */




More information about the Numpy-svn mailing list