diff options
author | wim glenn <wim.glenn@melbourneit.com.au> | 2015-06-15 23:10:11 +1000 |
---|---|---|
committer | wim glenn <wim.glenn@melbourneit.com.au> | 2015-06-15 23:10:11 +1000 |
commit | d67dc631694585ca84972d2ba1823dac9ca220e1 (patch) | |
tree | 7eb048b0e51f3b2e9238d832b63e41f5e5c1a9c3 /numpy | |
parent | 3dd9a5dd7e30a05e97b3671976eee87564370ac1 (diff) | |
download | numpy-d67dc631694585ca84972d2ba1823dac9ca220e1.tar.gz |
the code changes to make those new tests pass
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/core/src/multiarray/arraytypes.c.src | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/numpy/core/src/multiarray/arraytypes.c.src b/numpy/core/src/multiarray/arraytypes.c.src index a7d36ab42..1e0522f4a 100644 --- a/numpy/core/src/multiarray/arraytypes.c.src +++ b/numpy/core/src/multiarray/arraytypes.c.src @@ -2297,13 +2297,13 @@ STRING_nonzero (char *ip, PyArrayObject *ap) int len = PyArray_DESCR(ap)->elsize; int i; npy_bool nonz = NPY_FALSE; - - if ((len == 1) && (*ip == '\0')) { - return NPY_FALSE; - } + npy_bool seen_null = NPY_FALSE; for (i = 0; i < len; i++) { - if (!Py_STRING_ISSPACE(*ip)) { + if (*ip == '\0') { + seen_null = NPY_TRUE; + } + else if (seen_null || !Py_STRING_ISSPACE(*ip)) { nonz = NPY_TRUE; break; } @@ -2324,6 +2324,7 @@ UNICODE_nonzero (npy_ucs4 *ip, PyArrayObject *ap) int len = PyArray_DESCR(ap)->elsize >> 2; int i; npy_bool nonz = NPY_FALSE; + npy_bool seen_null = NPY_FALSE; char *buffer = NULL; if ((!PyArray_ISNOTSWAPPED(ap)) || (!PyArray_ISALIGNED(ap))) { @@ -2343,7 +2344,10 @@ UNICODE_nonzero (npy_ucs4 *ip, PyArrayObject *ap) } for (i = 0; i < len; i++) { - if (!PyArray_UCS4_ISSPACE(*ip)) { + if (*ip == '\0') { + seen_null = NPY_TRUE; + } + else if (seen_null || !PyArray_UCS4_ISSPACE(*ip)) { nonz = NPY_TRUE; break; } |