diff options
-rw-r--r-- | numpy/core/src/multiarray/mapping.c | 30 | ||||
-rw-r--r-- | numpy/core/src/umath/ufunc_object.c | 12 |
2 files changed, 27 insertions, 15 deletions
diff --git a/numpy/core/src/multiarray/mapping.c b/numpy/core/src/multiarray/mapping.c index f016cd755..aea41fa86 100644 --- a/numpy/core/src/multiarray/mapping.c +++ b/numpy/core/src/multiarray/mapping.c @@ -847,10 +847,12 @@ array_boolean_subscript(PyArrayObject *self, npy_intp self_stride = innerstrides[0]; npy_intp bmask_stride = innerstrides[1]; npy_intp subloopsize; + char *self_data; + char *bmask_data; do { innersize = *NpyIter_GetInnerLoopSizePtr(iter); - char *self_data = dataptrs[0]; - char *bmask_data = dataptrs[1]; + self_data = dataptrs[0]; + bmask_data = dataptrs[1]; while (innersize > 0) { /* Skip masked values */ @@ -882,11 +884,14 @@ array_boolean_subscript(PyArrayObject *self, npy_intp bmask_stride = innerstrides[1]; npy_intp maskna_stride = innerstrides[2]; npy_intp subloopsize; + char *self_data; + char *bmask_data; + char *maskna_data; do { innersize = *NpyIter_GetInnerLoopSizePtr(iter); - char *self_data = dataptrs[0]; - char *bmask_data = dataptrs[1]; - char *maskna_data = dataptrs[2]; + self_data = dataptrs[0]; + bmask_data = dataptrs[1]; + maskna_data = dataptrs[2]; while (innersize > 0) { /* Skip masked values */ @@ -1098,6 +1103,8 @@ array_ass_boolean_subscript(PyArrayObject *self, npy_intp self_stride = innerstrides[0]; npy_intp bmask_stride = innerstrides[1]; npy_intp subloopsize; + char *self_data; + char *bmask_data; /* Get a dtype transfer function */ NpyIter_GetInnerFixedStrideArray(iter, fixed_strides); @@ -1114,8 +1121,8 @@ array_ass_boolean_subscript(PyArrayObject *self, do { innersize = *NpyIter_GetInnerLoopSizePtr(iter); - char *self_data = dataptrs[0]; - char *bmask_data = dataptrs[1]; + self_data = dataptrs[0]; + bmask_data = dataptrs[1]; while (innersize > 0) { /* Skip masked values */ @@ -1152,6 +1159,9 @@ array_ass_boolean_subscript(PyArrayObject *self, npy_intp self_maskna_stride = innerstrides[2]; npy_intp subloopsize; PyArray_Descr *v_maskna_dtype; + char *self_data; + char *bmask_data; + char *self_maskna_data; if (PyArray_HASMASKNA(v)) { v_maskna_dtype = PyArray_MASKNA_DTYPE(v); @@ -1184,9 +1194,9 @@ array_ass_boolean_subscript(PyArrayObject *self, do { innersize = *NpyIter_GetInnerLoopSizePtr(iter); - char *self_data = dataptrs[0]; - char *bmask_data = dataptrs[1]; - char *self_maskna_data = dataptrs[2]; + self_data = dataptrs[0]; + bmask_data = dataptrs[1]; + self_maskna_data = dataptrs[2]; while (innersize > 0) { /* Skip masked values */ diff --git a/numpy/core/src/umath/ufunc_object.c b/numpy/core/src/umath/ufunc_object.c index 8b9210dcb..8c35207a4 100644 --- a/numpy/core/src/umath/ufunc_object.c +++ b/numpy/core/src/umath/ufunc_object.c @@ -2627,7 +2627,6 @@ PyUFunc_Reduce(PyUFuncObject *self, PyArrayObject *arr, PyArrayObject *out, NpyAuxData *maskedinnerloopdata = NULL; char *ufunc_name = self->name ? self->name : "(unknown)"; - NPY_BEGIN_THREADS_DEF; /* These parameters come from a TLS global */ int buffersize = 0, errormask = 0; @@ -2639,6 +2638,8 @@ PyUFunc_Reduce(PyUFuncObject *self, PyArrayObject *arr, PyArrayObject *out, PyArray_Descr *op_dtypes[2] = {NULL, NULL}; npy_uint32 flags, op_flags[2]; + NPY_BEGIN_THREADS_DEF; + ndim = PyArray_NDIM(arr); if (PyUFunc_GetPyValues("reduce", &buffersize, &errormask, &errobj) < 0) { @@ -3155,6 +3156,7 @@ PyUFunc_Accumulate(PyUFuncObject *self, PyArrayObject *arr, PyArrayObject *out, if (iter && NpyIter_GetIterSize(iter) != 0) { char *dataptr_copy[3]; npy_intp stride_copy[3]; + npy_intp count_m1, stride0, stride1; NpyIter_IterNextFunc *iternext; char **dataptr; @@ -3170,8 +3172,8 @@ PyUFunc_Accumulate(PyUFuncObject *self, PyArrayObject *arr, PyArrayObject *out, /* Execute the loop with just the outer iterator */ - npy_intp count_m1 = PyArray_DIM(op[1], axis)-1; - npy_intp stride0 = 0, stride1 = PyArray_STRIDE(op[1], axis); + count_m1 = PyArray_DIM(op[1], axis)-1; + stride0 = 0, stride1 = PyArray_STRIDE(op[1], axis); NPY_UF_DBG_PRINT("UFunc: Reduce loop with just outer iterator\n"); @@ -3361,14 +3363,14 @@ PyUFunc_Reduceat(PyUFuncObject *self, PyArrayObject *arr, PyArrayObject *ind, int buffersize = 0, errormask = 0; PyObject *errobj = NULL; + NPY_BEGIN_THREADS_DEF; + if (PyArray_HASMASKNA(arr)) { PyErr_SetString(PyExc_RuntimeError, "ufunc reduceat doesn't support NA masked arrays yet"); return NULL; } - NPY_BEGIN_THREADS_DEF; - reduceat_ind = (npy_intp *)PyArray_DATA(ind); ind_size = PyArray_DIM(ind, 0); red_axis_size = PyArray_DIM(arr, axis); |