[pypy-commit] pypy default: fix array setitem_array_int with scalar value
bdkearns
noreply at buildbot.pypy.org
Sat Dec 14 18:54:20 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r68440:55f7a6da11c7
Date: 2013-12-14 12:51 -0500
http://bitbucket.org/pypy/pypy/changeset/55f7a6da11c7/
Log: fix array setitem_array_int with scalar value
diff --git a/pypy/module/micronumpy/loop.py b/pypy/module/micronumpy/loop.py
--- a/pypy/module/micronumpy/loop.py
+++ b/pypy/module/micronumpy/loop.py
@@ -564,8 +564,11 @@
index_w[i] = indexes_w[i]
w_idx = space.newtuple(prefix_w[:prefixlen] + iter.get_index(space,
shapelen))
- arr.descr_setitem(space, space.newtuple(index_w),
- val_arr.descr_getitem(space, w_idx))
+ if val_arr.is_scalar():
+ w_value = val_arr.get_scalar_value()
+ else:
+ w_value = val_arr.descr_getitem(space, w_idx)
+ arr.descr_setitem(space, space.newtuple(index_w), w_value)
iter.next()
byteswap_driver = jit.JitDriver(name='numpy_byteswap_driver',
diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -1888,6 +1888,10 @@
assert (a == [0, 1, 1, 0, 4, 0, 6, 7, 8, 9]).all()
raises(IndexError, "arange(10)[array([10])] = 3")
raises(IndexError, "arange(10)[[-11]] = 3")
+ a = zeros(10)
+ b = array([3,4,5])
+ a[b] = 1
+ assert (a == [0, 0, 0, 1, 1, 1, 0, 0, 0, 0]).all()
def test_array_scalar_index(self):
import numpypy as np
More information about the pypy-commit
mailing list