summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/calculation.c16
-rw-r--r--numpy/core/src/multiarray/compiled_base.c37
-rw-r--r--numpy/core/src/multiarray/ctors.c4
-rw-r--r--numpy/core/src/multiarray/item_selection.c44
-rw-r--r--numpy/core/src/multiarray/mapping.c7
5 files changed, 59 insertions, 49 deletions
diff --git a/numpy/core/src/multiarray/calculation.c b/numpy/core/src/multiarray/calculation.c
index e24ac2b57..e47dd81b9 100644
--- a/numpy/core/src/multiarray/calculation.c
+++ b/numpy/core/src/multiarray/calculation.c
@@ -100,10 +100,10 @@ PyArray_ArgMax(PyArrayObject *op, int axis, PyArrayObject *out)
}
if (!out) {
- rp = (PyArrayObject *)PyArray_New(Py_TYPE(ap), PyArray_NDIM(ap)-1,
- PyArray_DIMS(ap), NPY_INTP,
- NULL, NULL, 0, 0,
- (PyObject *)ap);
+ rp = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(ap), PyArray_DescrFromType(NPY_INTP),
+ PyArray_NDIM(ap) - 1, PyArray_DIMS(ap), NULL, NULL,
+ 0, (PyObject *)ap);
if (rp == NULL) {
goto fail;
}
@@ -216,10 +216,10 @@ PyArray_ArgMin(PyArrayObject *op, int axis, PyArrayObject *out)
}
if (!out) {
- rp = (PyArrayObject *)PyArray_New(Py_TYPE(ap), PyArray_NDIM(ap)-1,
- PyArray_DIMS(ap), NPY_INTP,
- NULL, NULL, 0, 0,
- (PyObject *)ap);
+ rp = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(ap), PyArray_DescrFromType(NPY_INTP),
+ PyArray_NDIM(ap) - 1, PyArray_DIMS(ap), NULL, NULL,
+ 0, (PyObject *)ap);
if (rp == NULL) {
goto fail;
}
diff --git a/numpy/core/src/multiarray/compiled_base.c b/numpy/core/src/multiarray/compiled_base.c
index 5ee385c46..25e3dcca3 100644
--- a/numpy/core/src/multiarray/compiled_base.c
+++ b/numpy/core/src/multiarray/compiled_base.c
@@ -273,9 +273,10 @@ arr_digitize(PyObject *NPY_UNUSED(self), PyObject *args, PyObject *kwds)
npy_intp stride = -PyArray_STRIDE(arr_bins, 0);
void *data = (void *)(PyArray_BYTES(arr_bins) - stride * (shape - 1));
- arr_tmp = (PyArrayObject *)PyArray_New(&PyArray_Type, 1, &shape,
- NPY_DOUBLE, &stride, data, 0,
- PyArray_FLAGS(arr_bins), NULL);
+ arr_tmp = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_DOUBLE),
+ 1, &shape, &stride, data,
+ PyArray_FLAGS(arr_bins), NULL);
if (!arr_tmp) {
goto fail;
}
@@ -1362,11 +1363,11 @@ arr_unravel_index(PyObject *self, PyObject *args, PyObject *kwds)
for (i = 0; i < dimensions.len; ++i) {
PyArrayObject *view;
- view = (PyArrayObject *)PyArray_New(&PyArray_Type, ret_ndim-1,
- ret_dims, NPY_INTP,
- ret_strides,
- PyArray_BYTES(ret_arr) + i*sizeof(npy_intp),
- 0, NPY_ARRAY_WRITEABLE, NULL);
+ view = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_INTP),
+ ret_ndim - 1, ret_dims, ret_strides,
+ PyArray_BYTES(ret_arr) + i*sizeof(npy_intp),
+ NPY_ARRAY_WRITEABLE, NULL);
if (view == NULL) {
goto fail;
}
@@ -1621,8 +1622,10 @@ pack_bits(PyObject *input, int axis)
if (PyArray_NDIM(new) == 0) {
char *optr, *iptr;
- out = (PyArrayObject *)PyArray_New(Py_TYPE(new), 0, NULL, NPY_UBYTE,
- NULL, NULL, 0, 0, NULL);
+ out = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(new), PyArray_DescrFromType(NPY_UBYTE),
+ 0, NULL, NULL, NULL,
+ 0, NULL);
if (out == NULL) {
goto fail;
}
@@ -1652,9 +1655,10 @@ pack_bits(PyObject *input, int axis)
outdims[axis] = ((outdims[axis] - 1) >> 3) + 1;
/* Create output array */
- out = (PyArrayObject *)PyArray_New(Py_TYPE(new),
- PyArray_NDIM(new), outdims, NPY_UBYTE,
- NULL, NULL, 0, PyArray_ISFORTRAN(new), NULL);
+ out = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(new), PyArray_DescrFromType(NPY_UBYTE),
+ PyArray_NDIM(new), outdims, NULL, NULL,
+ PyArray_ISFORTRAN(new), NULL);
if (out == NULL) {
goto fail;
}
@@ -1746,9 +1750,10 @@ unpack_bits(PyObject *input, int axis)
outdims[axis] <<= 3;
/* Create output array */
- out = (PyArrayObject *)PyArray_New(Py_TYPE(new),
- PyArray_NDIM(new), outdims, NPY_UBYTE,
- NULL, NULL, 0, PyArray_ISFORTRAN(new), NULL);
+ out = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(new), PyArray_DescrFromType(NPY_UBYTE),
+ PyArray_NDIM(new), outdims, NULL, NULL,
+ PyArray_ISFORTRAN(new), NULL);
if (out == NULL) {
goto fail;
}
diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c
index 5d3cee647..e66506fb0 100644
--- a/numpy/core/src/multiarray/ctors.c
+++ b/numpy/core/src/multiarray/ctors.c
@@ -1143,8 +1143,8 @@ PyArray_NewFromDescr_int(PyTypeObject *subtype, PyArray_Descr *descr, int nd,
* true, dtype will be decrefed.
*/
NPY_NO_EXPORT PyObject *
-PyArray_NewFromDescr(PyTypeObject *subtype, PyArray_Descr *descr, int nd,
- npy_intp *dims, npy_intp *strides, void *data,
+PyArray_NewFromDescr(PyTypeObject *subtype, PyArray_Descr *descr,
+ int nd, npy_intp *dims, npy_intp *strides, void *data,
int flags, PyObject *obj)
{
return PyArray_NewFromDescr_int(subtype, descr, nd,
diff --git a/numpy/core/src/multiarray/item_selection.c b/numpy/core/src/multiarray/item_selection.c
index eb9ef5915..d010b2e75 100644
--- a/numpy/core/src/multiarray/item_selection.c
+++ b/numpy/core/src/multiarray/item_selection.c
@@ -955,9 +955,10 @@ _new_argsortlike(PyArrayObject *op, int axis, PyArray_ArgSortFunc *argsort,
NPY_BEGIN_THREADS_DEF;
- rop = (PyArrayObject *)PyArray_New(Py_TYPE(op), PyArray_NDIM(op),
- PyArray_DIMS(op), NPY_INTP,
- NULL, NULL, 0, 0, (PyObject *)op);
+ rop = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(op), PyArray_DescrFromType(NPY_INTP),
+ PyArray_NDIM(op), PyArray_DIMS(op), NULL, NULL,
+ 0, (PyObject *)op);
if (rop == NULL) {
return NULL;
}
@@ -1439,10 +1440,10 @@ PyArray_LexSort(PyObject *sort_keys, int axis)
nd = PyArray_NDIM(mps[0]);
if ((nd == 0) || (PyArray_SIZE(mps[0]) == 1)) {
/* single element case */
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, PyArray_NDIM(mps[0]),
- PyArray_DIMS(mps[0]),
- NPY_INTP,
- NULL, NULL, 0, 0, NULL);
+ ret = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_INTP),
+ PyArray_NDIM(mps[0]), PyArray_DIMS(mps[0]), NULL, NULL,
+ 0, NULL);
if (ret == NULL) {
goto fail;
@@ -1463,9 +1464,10 @@ PyArray_LexSort(PyObject *sort_keys, int axis)
}
/* Now do the sorting */
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, PyArray_NDIM(mps[0]),
- PyArray_DIMS(mps[0]), NPY_INTP,
- NULL, NULL, 0, 0, NULL);
+ ret = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_INTP),
+ PyArray_NDIM(mps[0]), PyArray_DIMS(mps[0]), NULL, NULL,
+ 0, NULL);
if (ret == NULL) {
goto fail;
}
@@ -1737,9 +1739,10 @@ PyArray_SearchSorted(PyArrayObject *op1, PyObject *op2,
}
/* ret is a contiguous array of intp type to hold returned indexes */
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, PyArray_NDIM(ap2),
- PyArray_DIMS(ap2), NPY_INTP,
- NULL, NULL, 0, 0, (PyObject *)ap2);
+ ret = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_INTP),
+ PyArray_NDIM(ap2), PyArray_DIMS(ap2), NULL, NULL,
+ 0, (PyObject *)ap2);
if (ret == NULL) {
goto fail;
}
@@ -2207,9 +2210,10 @@ PyArray_Nonzero(PyArrayObject *self)
/* Allocate the result as a 2D array */
ret_dims[0] = nonzero_count;
ret_dims[1] = (ndim == 0) ? 1 : ndim;
- ret = (PyArrayObject *)PyArray_New(&PyArray_Type, 2, ret_dims,
- NPY_INTP, NULL, NULL, 0, 0,
- NULL);
+ ret = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_INTP),
+ 2, ret_dims, NULL, NULL,
+ 0, NULL);
if (ret == NULL) {
return NULL;
}
@@ -2361,10 +2365,10 @@ finish:
/* the result is an empty array, the view must point to valid memory */
npy_intp data_offset = is_empty ? 0 : i * NPY_SIZEOF_INTP;
- PyArrayObject *view = (PyArrayObject *)PyArray_New(Py_TYPE(ret), 1,
- &nonzero_count, NPY_INTP, &stride,
- PyArray_BYTES(ret) + data_offset,
- 0, PyArray_FLAGS(ret), (PyObject *)ret);
+ PyArrayObject *view = (PyArrayObject *)PyArray_NewFromDescr(
+ Py_TYPE(ret), PyArray_DescrFromType(NPY_INTP),
+ 1, &nonzero_count, &stride, PyArray_BYTES(ret) + data_offset,
+ PyArray_FLAGS(ret), (PyObject *)ret);
if (view == NULL) {
Py_DECREF(ret);
Py_DECREF(ret_tuple);
diff --git a/numpy/core/src/multiarray/mapping.c b/numpy/core/src/multiarray/mapping.c
index 42dbc3cce..f2782ff27 100644
--- a/numpy/core/src/multiarray/mapping.c
+++ b/numpy/core/src/multiarray/mapping.c
@@ -2215,9 +2215,10 @@ _nonzero_indices(PyObject *myBool, PyArrayObject **arrays)
/* create count-sized index arrays for each dimension */
for (j = 0; j < nd; j++) {
- new = (PyArrayObject *)PyArray_New(&PyArray_Type, 1, &count,
- NPY_INTP, NULL, NULL,
- 0, 0, NULL);
+ new = (PyArrayObject *)PyArray_NewFromDescr(
+ &PyArray_Type, PyArray_DescrFromType(NPY_INTP),
+ 1, &count, NULL, NULL,
+ 0, NULL);
if (new == NULL) {
goto fail;
}