summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/multiarray/array_coercion.c2
-rw-r--r--numpy/core/src/multiarray/multiarraymodule.c12
-rw-r--r--numpy/core/src/multiarray/scalarapi.c5
3 files changed, 11 insertions, 8 deletions
diff --git a/numpy/core/src/multiarray/array_coercion.c b/numpy/core/src/multiarray/array_coercion.c
index 8e5183424..3c44d312c 100644
--- a/numpy/core/src/multiarray/array_coercion.c
+++ b/numpy/core/src/multiarray/array_coercion.c
@@ -555,6 +555,7 @@ npy_new_coercion_cache(
cache = PyMem_Malloc(sizeof(coercion_cache_obj));
}
if (cache == NULL) {
+ Py_DECREF(arr_or_sequence);
PyErr_NoMemory();
return -1;
}
@@ -1089,7 +1090,6 @@ PyArray_DiscoverDTypeAndShape_Recursive(
}
/* The cache takes ownership of the sequence here. */
if (npy_new_coercion_cache(obj, seq, 1, coercion_cache_tail_ptr, curr_dims) < 0) {
- Py_DECREF(seq);
return -1;
}
diff --git a/numpy/core/src/multiarray/multiarraymodule.c b/numpy/core/src/multiarray/multiarraymodule.c
index 5dccaf94c..184f9d05f 100644
--- a/numpy/core/src/multiarray/multiarraymodule.c
+++ b/numpy/core/src/multiarray/multiarraymodule.c
@@ -4669,14 +4669,14 @@ PyMODINIT_FUNC PyInit__multiarray_umath(void) {
PyObject *m, *d, *s;
PyObject *c_api;
- /* Initialize CPU features */
- if (npy_cpu_init() < 0) {
- goto err;
- }
-
/* Create the module and add the functions */
m = PyModule_Create(&moduledef);
if (!m) {
+ return NULL;
+ }
+
+ /* Initialize CPU features */
+ if (npy_cpu_init() < 0) {
goto err;
}
@@ -4914,6 +4914,6 @@ PyMODINIT_FUNC PyInit__multiarray_umath(void) {
PyErr_SetString(PyExc_RuntimeError,
"cannot load multiarray module.");
}
- Py_XDECREF(m);
+ Py_DECREF(m);
return NULL;
}
diff --git a/numpy/core/src/multiarray/scalarapi.c b/numpy/core/src/multiarray/scalarapi.c
index 28c010f8f..564352f1f 100644
--- a/numpy/core/src/multiarray/scalarapi.c
+++ b/numpy/core/src/multiarray/scalarapi.c
@@ -233,9 +233,12 @@ PyArray_CastScalarToCtype(PyObject *scalar, void *ctypeptr,
PyArray_VectorUnaryFunc* castfunc;
descr = PyArray_DescrFromScalar(scalar);
+ if (descr == NULL) {
+ return -1;
+ }
castfunc = PyArray_GetCastFunc(descr, outcode->type_num);
if (castfunc == NULL) {
- Py_XDECREF(descr);
+ Py_DECREF(descr);
return -1;
}
if (PyTypeNum_ISEXTENDED(descr->type_num) ||