summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/arraytypes.c.src2
-rw-r--r--numpy/core/tests/test_regression.py5
2 files changed, 6 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/arraytypes.c.src b/numpy/core/src/multiarray/arraytypes.c.src
index aff4c36dd..4a5c13a6a 100644
--- a/numpy/core/src/multiarray/arraytypes.c.src
+++ b/numpy/core/src/multiarray/arraytypes.c.src
@@ -2321,7 +2321,7 @@ VOID_nonzero (char *ip, PyArrayObject *ap)
* TODO: temporarily modifying the array like this
* is bad coding style, should be changed.
*/
- ((PyArrayObject_fields *)ap)->descr = descr;
+ ((PyArrayObject_fields *)ap)->descr = new;
((PyArrayObject_fields *)ap)->flags = savedflags;
if ((new->alignment > 1) && !__ALIGNED(ip + offset,
new->alignment)) {
diff --git a/numpy/core/tests/test_regression.py b/numpy/core/tests/test_regression.py
index cb8415ee7..bb0bf029b 100644
--- a/numpy/core/tests/test_regression.py
+++ b/numpy/core/tests/test_regression.py
@@ -1898,6 +1898,11 @@ class TestRegression(TestCase):
order='F')
assert_array_equal(arr2, data_back)
+ def test_structured_count_nonzero(self):
+ arr = np.array([0, 1]).astype('i4, (2)i4')[:1]
+ count = np.count_nonzero(arr)
+ assert_equal(count, 0)
+