[pypy-commit] pypy scalar-operations: avoid unnecesary recursion

rlamy noreply at buildbot.pypy.org
Sat Jun 28 20:30:55 CEST 2014


Author: Ronan Lamy <ronan.lamy at gmail.com>
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")


More information about the pypy-commit mailing list