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