summaryrefslogtreecommitdiff
path: root/numpy/f2py/src/fortranobject.c
diff options
context:
space:
mode:
authorJulian Taylor <jtaylor.debian@googlemail.com>2017-04-14 21:00:29 +0200
committerJulian Taylor <jtaylor.debian@googlemail.com>2017-05-02 22:03:29 +0200
commita618b4e10dde4b41acceac3d8f7c042fb88af1a7 (patch)
treee439e34fab885df68305affa43602ddbe4284155 /numpy/f2py/src/fortranobject.c
parentb8d0498eb1463e900a6c07311c0c1f80f5611bad (diff)
downloadnumpy-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.c28
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)