diff options
author | Julian Taylor <jtaylor.debian@googlemail.com> | 2017-04-14 21:00:29 +0200 |
---|---|---|
committer | Julian Taylor <jtaylor.debian@googlemail.com> | 2017-05-02 22:03:29 +0200 |
commit | a618b4e10dde4b41acceac3d8f7c042fb88af1a7 (patch) | |
tree | e439e34fab885df68305affa43602ddbe4284155 /numpy/f2py/src/fortranobject.c | |
parent | b8d0498eb1463e900a6c07311c0c1f80f5611bad (diff) | |
download | numpy-a618b4e10dde4b41acceac3d8f7c042fb88af1a7.tar.gz |
MAINT: remove usage of NPY_CHAR from f2py
Diffstat (limited to 'numpy/f2py/src/fortranobject.c')
-rw-r--r-- | numpy/f2py/src/fortranobject.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/numpy/f2py/src/fortranobject.c b/numpy/f2py/src/fortranobject.c index 9024dd5b3..0209cb1be 100644 --- a/numpy/f2py/src/fortranobject.c +++ b/numpy/f2py/src/fortranobject.c @@ -691,7 +691,7 @@ PyArrayObject* array_from_pyobj(const int type_num, } arr = (PyArrayObject *) PyArray_New(&PyArray_Type, rank, dims, type_num, - NULL,NULL,0, + NULL,NULL,1, !(intent&F2PY_INTENT_C), NULL); if (arr==NULL) return NULL; @@ -701,6 +701,15 @@ PyArrayObject* array_from_pyobj(const int type_num, } descr = PyArray_DescrFromType(type_num); + /* compatibility with NPY_CHAR */ + if (type_num == NPY_STRING) { + PyArray_DESCR_REPLACE(descr); + if (descr == NULL) { + return NULL; + } + descr->elsize = 1; + descr->type = NPY_CHARLTR; + } elsize = descr->elsize; typechar = descr->type; Py_DECREF(descr); @@ -781,9 +790,10 @@ PyArrayObject* array_from_pyobj(const int type_num, /* here we have always intent(in) or intent(inplace) */ { - PyArrayObject *retarr = (PyArrayObject *) \ + PyArrayObject * retarr; + retarr = (PyArrayObject *) \ PyArray_New(&PyArray_Type, PyArray_NDIM(arr), PyArray_DIMS(arr), type_num, - NULL,NULL,0, + NULL,NULL,1, !(intent&F2PY_INTENT_C), NULL); if (retarr==NULL) @@ -816,9 +826,19 @@ PyArrayObject* array_from_pyobj(const int type_num, } { + PyArray_Descr * descr = PyArray_DescrFromType(type_num); + /* compatibility with NPY_CHAR */ + if (type_num == NPY_STRING) { + PyArray_DESCR_REPLACE(descr); + if (descr == NULL) { + return NULL; + } + descr->elsize = 1; + descr->type = NPY_CHARLTR; + } F2PY_REPORT_ON_ARRAY_COPY_FROMANY; arr = (PyArrayObject *) \ - PyArray_FromAny(obj,PyArray_DescrFromType(type_num), 0,0, + PyArray_FromAny(obj, descr, 0,0, ((intent & F2PY_INTENT_C)?NPY_ARRAY_CARRAY:NPY_ARRAY_FARRAY) \ | NPY_ARRAY_FORCECAST, NULL); if (arr==NULL) |