Author: Ronan Lamy <[email protected]>
Branch: scalar-operations
Changeset: r72269:85a336b9ee2d
Date: 2014-06-27 02:10 +0100
http://bitbucket.org/pypy/pypy/changeset/85a336b9ee2d/

Log:    avoid unnecesary recursion

diff --git a/pypy/module/micronumpy/ctors.py b/pypy/module/micronumpy/ctors.py
--- a/pypy/module/micronumpy/ctors.py
+++ b/pypy/module/micronumpy/ctors.py
@@ -33,12 +33,13 @@
     if not isinstance(w_object, W_NDimArray):
         w___array__ = space.lookup(w_object, "__array__")
         if w___array__ is not None:
-            if space.is_none(w_dtype):
+            if w_dtype is None:
                 w_dtype = space.w_None
             w_array = space.get_and_call_function(w___array__, w_object, 
w_dtype)
             if isinstance(w_array, W_NDimArray):
-                # feed w_array back into array() for other properties
-                return array(space, w_array, w_dtype, False, w_order, subok, 
ndmin)
+                # continue with w_array, but do further operations in place
+                w_object = w_array
+                copy = False
             else:
                 raise oefmt(space.w_ValueError,
                             "object __array__ method not producing an array")
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to