diff options
| author | Eric Wieser <wieser.eric@gmail.com> | 2018-01-31 09:38:14 -0800 |
|---|---|---|
| committer | Eric Wieser <wieser.eric@gmail.com> | 2018-02-03 11:36:30 -0800 |
| commit | ef70f13177a53266fd8547da6e00bc252a057893 (patch) | |
| tree | b836e830ac216985e27c3f6e63e582df2bbab91c /numpy/core/src | |
| parent | 2854d508d1c6d211f2ce99e8747eda1cb427a78a (diff) | |
| download | numpy-ef70f13177a53266fd8547da6e00bc252a057893.tar.gz | |
MAINT: Use AxisError in swapaxes
Diffstat (limited to 'numpy/core/src')
| -rw-r--r-- | numpy/core/src/multiarray/common.h | 13 | ||||
| -rw-r--r-- | numpy/core/src/multiarray/shape.c | 14 |
2 files changed, 15 insertions, 12 deletions
diff --git a/numpy/core/src/multiarray/common.h b/numpy/core/src/multiarray/common.h index ae9b960c8..4b670b851 100644 --- a/numpy/core/src/multiarray/common.h +++ b/numpy/core/src/multiarray/common.h @@ -2,6 +2,7 @@ #define _NPY_PRIVATE_COMMON_H_ #include <numpy/npy_common.h> #include <numpy/npy_cpu.h> +#include <numpy/npy_3kcompat.h> #include <numpy/ndarraytypes.h> #include <limits.h> @@ -181,6 +182,18 @@ check_and_adjust_axis(int *axis, int ndim) { return check_and_adjust_axis_msg(axis, ndim, Py_None); } +static NPY_INLINE int +check_and_adjust_axis_cmsg(int *axis, int ndim, char const *cmsg) +{ + int ret; + PyObject *msg = PyUString_FromString(cmsg); + if (msg == NULL) { + return -1; + } + ret = check_and_adjust_axis_msg(axis, ndim, msg); + Py_DECREF(msg); + return ret; +} /* diff --git a/numpy/core/src/multiarray/shape.c b/numpy/core/src/multiarray/shape.c index 61908e95e..21f901755 100644 --- a/numpy/core/src/multiarray/shape.c +++ b/numpy/core/src/multiarray/shape.c @@ -648,20 +648,10 @@ PyArray_SwapAxes(PyArrayObject *ap, int a1, int a2) int n = PyArray_NDIM(ap); int i; - if (a1 < 0) { - a1 += n; - } - if (a2 < 0) { - a2 += n; - } - if ((a1 < 0) || (a1 >= n)) { - PyErr_SetString(PyExc_ValueError, - "bad axis1 argument to swapaxes"); + if (check_and_adjust_axis_cmsg(&a1, n, "axis1") < 0) { return NULL; } - if ((a2 < 0) || (a2 >= n)) { - PyErr_SetString(PyExc_ValueError, - "bad axis2 argument to swapaxes"); + if (check_and_adjust_axis_cmsg(&a2, n, "axis2") < 0) { return NULL; } |
