diff --git a/numpy/core/src/multiarray/alloc.c b/numpy/core/src/multiarray/alloc.c index 94a7daa83f6f..759a02aeb729 100644 --- a/numpy/core/src/multiarray/alloc.c +++ b/numpy/core/src/multiarray/alloc.c @@ -576,7 +576,7 @@ PyDataMem_GetHandler() if (p == NULL) { return NULL; } - handler = PyDict_GetItemString(p, "current_allocator"); + handler = PyDict_GetItem(p, npy_ma_str_current_allocator); if (handler == NULL) { handler = PyCapsule_New(&default_handler, "mem_handler", NULL); if (handler == NULL) { diff --git a/numpy/core/src/multiarray/multiarraymodule.c b/numpy/core/src/multiarray/multiarraymodule.c index 0ce092780ec9..5e51bcaa67e3 100644 --- a/numpy/core/src/multiarray/multiarraymodule.c +++ b/numpy/core/src/multiarray/multiarraymodule.c @@ -4665,6 +4665,7 @@ set_flaginfo(PyObject *d) return; } +NPY_VISIBILITY_HIDDEN PyObject * npy_ma_str_current_allocator = NULL; NPY_VISIBILITY_HIDDEN PyObject * npy_ma_str_array = NULL; NPY_VISIBILITY_HIDDEN PyObject * npy_ma_str_array_function = NULL; NPY_VISIBILITY_HIDDEN PyObject * npy_ma_str_array_struct = NULL; @@ -4681,6 +4682,10 @@ NPY_VISIBILITY_HIDDEN PyObject * npy_ma_str_numpy = NULL; static int intern_strings(void) { + npy_ma_str_current_allocator = PyUnicode_InternFromString("current_allocator"); + if (npy_ma_str_current_allocator == NULL) { + return -1; + } npy_ma_str_array = PyUnicode_InternFromString("__array__"); if (npy_ma_str_array == NULL) { return -1; diff --git a/numpy/core/src/multiarray/multiarraymodule.h b/numpy/core/src/multiarray/multiarraymodule.h index 70205dfd2fed..809736cd2df0 100644 --- a/numpy/core/src/multiarray/multiarraymodule.h +++ b/numpy/core/src/multiarray/multiarraymodule.h @@ -1,6 +1,7 @@ #ifndef NUMPY_CORE_SRC_MULTIARRAY_MULTIARRAYMODULE_H_ #define NUMPY_CORE_SRC_MULTIARRAY_MULTIARRAYMODULE_H_ +NPY_VISIBILITY_HIDDEN extern PyObject * npy_ma_str_current_allocator; NPY_VISIBILITY_HIDDEN extern PyObject * npy_ma_str_array; NPY_VISIBILITY_HIDDEN extern PyObject * npy_ma_str_array_function; NPY_VISIBILITY_HIDDEN extern PyObject * npy_ma_str_array_struct;