/* * 'Root' function to walk into a dtype. May be called recursively */ static int _array_descr_walk(PyArray_Descr* descr, PyObject *l) { int st; if (_is_array_descr_builtin(descr)) { return _array_descr_builtin(descr, l); } else { if(descr->fields != NULL && descr->fields != Py_None) { if (!PyDict_Check(descr->fields)) { PyErr_SetString(PyExc_SystemError, "(Hash) fields is not a dict ???"); return -1; } st = _array_descr_walk_fields(descr->fields, l); if (st) { return -1; } } if(PyDataType_HASSUBARRAY(descr)) { st = _array_descr_walk_subarray(descr->subarray, l); if (st) { return -1; } } } return 0; }
/* * 'Root' function to walk into a dtype. May be called recursively */ static int _array_descr_walk(PyArray_Descr* descr, PyObject *l) { int st; if (_is_array_descr_builtin(descr)) { return _array_descr_builtin(descr, l); } else { if(descr->fields != NULL && descr->fields != Py_None) { st = _array_descr_walk_fields(descr->names, descr->fields, l); if (st) { return -1; } } if(PyDataType_HASSUBARRAY(descr)) { st = _array_descr_walk_subarray(descr->subarray, l); if (st) { return -1; } } } return 0; }