summaryrefslogtreecommitdiff
path: root/numpy/core/src/arraymethods.c
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/core/src/arraymethods.c')
-rw-r--r--numpy/core/src/arraymethods.c11
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 */