diff options
-rw-r--r-- | numpy/core/src/multiarray/methods.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/numpy/core/src/multiarray/methods.c b/numpy/core/src/multiarray/methods.c index 119056c56..5ad4f2fd6 100644 --- a/numpy/core/src/multiarray/methods.c +++ b/numpy/core/src/multiarray/methods.c @@ -1587,8 +1587,9 @@ array_setstate(PyArrayObject *self, PyObject *args) /* Check that the string is not interned */ if (!_IsAligned(self) || swap || PyString_CHECK_INTERNED(rawdata)) { #else - /* Bytes must always be considered immutable */ - if (1) { + /* Bytes should always be considered immutable, but we just grab the + * pointer if they are large, to save memory. */ + if (!_IsAligned(self) || swap || (len <= 1000)) { #endif npy_intp num = PyArray_NBYTES(self); fa->data = PyDataMem_NEW(num); |