Author: Matti Picus <[email protected]>
Branch: str-dtype-improvement
Changeset: r62400:173bb0fa22cf
Date: 2013-03-18 10:10 -0700
http://bitbucket.org/pypy/pypy/changeset/173bb0fa22cf/
Log: seperate jit merge points, fix 'whoops' in indexing
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
@@ -79,18 +79,11 @@
source_iter = source.create_iter(shape)
dtype = target.dtype
shapelen = len(shape)
- if dtype.is_str_or_unicode():
- while not target_iter.done():
- setslice_driver1.jit_merge_point(shapelen=shapelen, dtype=dtype)
- target_iter.setitem(dtype.convert_from(space,
source_iter.getitem()))
- target_iter.next()
- source_iter.next()
- else:
- while not target_iter.done():
- setslice_driver2.jit_merge_point(shapelen=shapelen, dtype=dtype)
- target_iter.setitem(source_iter.getitem().convert_to(dtype))
- target_iter.next()
- source_iter.next()
+ while not target_iter.done():
+ setslice_driver2.jit_merge_point(shapelen=shapelen, dtype=dtype)
+ target_iter.setitem(source_iter.getitem().convert_to(dtype))
+ target_iter.next()
+ source_iter.next()
return target
reduce_driver = jit.JitDriver(name='numpy_reduce',
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -1643,7 +1643,7 @@
@jit.unroll_safe
def store(self, arr, i, offset, box):
assert isinstance(box, interp_boxes.W_StringBox)
- for k in range(min(self.size - i, box.arr.size-offset)):
+ for k in range(min(self.size, box.arr.size-offset)):
arr.storage[k + i] = box.arr.storage[k + offset]
def read(self, arr, i, offset, dtype=None):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit