From b022765aa487070866663b1707e4a2a0d8ead2e8 Mon Sep 17 00:00:00 2001 From: Travis Oliphant Date: Wed, 18 Oct 2006 18:15:26 +0000 Subject: Fix-up so that if on creation, a string or unicode data-type has an empty elsize it is reset to the size of one character. --- numpy/core/src/arrayobject.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'numpy/core/src/arrayobject.c') 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