diff options
Diffstat (limited to 'numpy/core/src/arrayobject.c')
-rw-r--r-- | numpy/core/src/arrayobject.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/numpy/core/src/arrayobject.c b/numpy/core/src/arrayobject.c index 2c77622a4..b8f3bbad2 100644 --- a/numpy/core/src/arrayobject.c +++ b/numpy/core/src/arrayobject.c @@ -5255,9 +5255,15 @@ PyArray_NewFromDescr(PyTypeObject *subtype, PyArray_Descr *descr, int nd, size = 1; sd = (size_t) descr->elsize; if (sd == 0) { - PyErr_SetString(PyExc_ValueError, "Empty data-type"); - Py_DECREF(descr); - return NULL; + if (!PyDataType_ISSTRING(descr)) { + PyErr_SetString(PyExc_ValueError, "Empty data-type"); + Py_DECREF(descr); + return NULL; + } + PyArray_DESCR_REPLACE(descr); + if (descr->type_num == NPY_STRING) descr->elsize = 1; + else descr->elsize = sizeof(PyArray_UCS4); + sd = (size_t) descr->elsize; } largest = MAX_INTP / sd; for (i=0;i<nd;i++) { |