Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r87264:d9aeadc27510
Date: 2016-09-21 14:07 +0200
http://bitbucket.org/pypy/pypy/changeset/d9aeadc27510/

Log:    Actually, we can just move that block of code outside the unrolled
        loop.

diff --git a/pypy/module/array/interp_array.py 
b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -30,28 +30,25 @@
             raise oefmt(space.w_TypeError,
                         "array.array() does not take keyword arguments")
 
-    w_initializer_type = None
-    w_initializer = None
-    if len(__args__.arguments_w) > 0:
-        w_initializer = __args__.arguments_w[0]
-        w_initializer_type = space.type(w_initializer)
     for tc in unroll_typecodes:
         if typecode == tc:
             a = space.allocate_instance(types[tc].w_class, w_cls)
             a.__init__(space)
-            if w_initializer is not None:
-                if w_initializer_type is space.w_str:
-                    a.descr_fromstring(space, w_initializer)
-                elif w_initializer_type is space.w_list:
-                    a.descr_fromlist(space, w_initializer)
-                else:
-                    a.extend(w_initializer, True)
             break
     else:
         raise oefmt(space.w_ValueError,
                     "bad typecode (must be c, b, B, u, h, H, i, I, l, L, f or "
                     "d)")
 
+    if len(__args__.arguments_w) > 0:
+        w_initializer = __args__.arguments_w[0]
+        w_initializer_type = space.type(w_initializer)
+        if w_initializer_type is space.w_str:
+            a.descr_fromstring(space, w_initializer)
+        elif w_initializer_type is space.w_list:
+            a.descr_fromlist(space, w_initializer)
+        else:
+            a.extend(w_initializer, True)
     return a
 
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to