diff options
author | Travis Oliphant <oliphant@enthought.com> | 2009-12-03 03:34:01 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2009-12-03 03:34:01 +0000 |
commit | 541798c0ec040c11ee7b1cdab9b35865546dc28d (patch) | |
tree | b6eba1a0f941a2649ef87ac600722d0a2fdf98fc | |
parent | 2f300ed50be961076a28c60a7227233ce72975aa (diff) | |
download | numpy-541798c0ec040c11ee7b1cdab9b35865546dc28d.tar.gz |
Clean-up PyArray_EnsureArray so there is one return point.
-rw-r--r-- | numpy/core/src/multiarray/ctors.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c index c6833d256..41b1ae131 100644 --- a/numpy/core/src/multiarray/ctors.c +++ b/numpy/core/src/multiarray/ctors.c @@ -2322,24 +2322,20 @@ PyArray_EnsureArray(PyObject *op) { PyObject *new; - if (op == NULL) { - return NULL; - } - if (PyArray_CheckExact(op)) { - return op; + if ((op == NULL) || (PyArray_CheckExact(op))) { + new = op; + Py_XINCREF(new); } - if (PyArray_Check(op)) { + else if (PyArray_Check(op)) { new = PyArray_View((PyArrayObject *)op, NULL, &PyArray_Type); - Py_DECREF(op); - return new; } - if (PyArray_IsScalar(op, Generic)) { + else if (PyArray_IsScalar(op, Generic)) { new = PyArray_FromScalar(op, NULL); - Py_DECREF(op); - return new; } - new = PyArray_FromAny(op, NULL, 0, 0, ENSUREARRAY, NULL); - Py_DECREF(op); + else { + new = PyArray_FromAny(op, NULL, 0, 0, ENSUREARRAY, NULL); + } + Py_XDECREF(op); return new; } |