diff options
Diffstat (limited to 'numpy/core/src/arraymethods.c')
-rw-r--r-- | numpy/core/src/arraymethods.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/numpy/core/src/arraymethods.c b/numpy/core/src/arraymethods.c index 3572633ef..54bda5d1e 100644 --- a/numpy/core/src/arraymethods.c +++ b/numpy/core/src/arraymethods.c @@ -653,14 +653,19 @@ array_cast(PyArrayObject *self, PyObject *args) &descr)) return NULL; if (descr == self->descr) { - obj = _ARET(PyArray_NewCopy(self,0)); + obj = _ARET(PyArray_NewCopy(self,NPY_ANYORDER)); Py_XDECREF(descr); return obj; } if (descr->names != NULL) { - return PyArray_FromArray(self, descr, NPY_FORCECAST); + int flags; + flags = NPY_FORCECAST; + if (PyArray_ISFORTRAN(self)) { + flags |= NPY_FORTRAN; + } + return PyArray_FromArray(self, descr, flags); } - return PyArray_CastToType(self, descr, 0); + return PyArray_CastToType(self, descr, PyArray_ISFORTRAN(self)); } /* default sub-type implementation */ |