Author: mattip <[email protected]>
Branch: str-dtype-improvement
Changeset: r62368:38af381ec596
Date: 2013-03-15 19:36 -0700
http://bitbucket.org/pypy/pypy/changeset/38af381ec596/

Log:    reuse setslice, remove code duplication

diff --git a/pypy/module/micronumpy/arrayimpl/concrete.py 
b/pypy/module/micronumpy/arrayimpl/concrete.py
--- a/pypy/module/micronumpy/arrayimpl/concrete.py
+++ b/pypy/module/micronumpy/arrayimpl/concrete.py
@@ -279,11 +279,12 @@
         return ArrayBuffer(self)
 
     def astype(self, space, dtype):
+        new_arr = W_NDimArray.from_shape(self.get_shape(), dtype)
         if dtype.is_str_or_unicode():
             raise OperationError(space.w_NotImplementedError, space.wrap(
-                "astype(%s) not implemented yet" % dtype))
-        new_arr = W_NDimArray.from_shape(self.get_shape(), dtype)
-        loop.copy_from_to(self, new_arr.implementation, dtype)
+                "astype(%s) not implemented yet" % self.dtype))
+        else:    
+            loop.setslice(new_arr.get_shape(), new_arr.implementation, self)
         return new_arr
 
 class ConcreteArrayNotOwning(BaseConcreteArray):
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
@@ -458,18 +458,6 @@
                           val_arr.descr_getitem(space, w_idx))
         iter.next()
 
-copy_from_to_driver = jit.JitDriver(greens = ['dtype'],
-                                    reds = 'auto')
-
-def copy_from_to(from_, to, dtype):
-    from_iter = from_.create_iter()
-    to_iter = to.create_iter()
-    while not from_iter.done():
-        copy_from_to_driver.jit_merge_point(dtype=dtype)
-        to_iter.setitem(from_iter.getitem().convert_to(dtype))
-        to_iter.next()
-        from_iter.next()
-
 byteswap_driver = jit.JitDriver(greens = ['dtype'],
                                     reds = 'auto')
 
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to