[armedbear-cvs] r13464 - trunk/abcl/src/org/armedbear/lisp

ehuelsmann at common-lisp.net ehuelsmann at common-lisp.net
Thu Aug 11 19:44:31 UTC 2011


Author: ehuelsmann
Date: Thu Aug 11 12:44:30 2011
New Revision: 13464

Log:
On second thought: revert r13463, it's not about value assignment,
but about binding establishment (ie assigning a new value to the
closure array's slots).

Modified:
   trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	Thu Aug 11 10:05:46 2011	(r13463)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	Thu Aug 11 12:44:30 2011	(r13464)
@@ -2162,20 +2162,17 @@
   (let* ((*register* *register*)
          (register (allocate-register nil)))
     (aload (compiland-closure-register compiland))        ;; src
-    (when (some #'(lambda (var)
-                    (< 1 (variable-writes var)))
-                *closure-variables*)
-      (emit-push-constant-int 0) ;; srcPos
-      (emit-push-constant-int (length *closure-variables*))
-      (emit-anewarray +lisp-closure-binding+) ;; dest
-      (emit 'dup)
-      (astore register)        ;; save dest value
-      (emit-push-constant-int 0)                          ;; destPos
-      (emit-push-constant-int (length *closure-variables*)) ;; length
-      (emit-invokestatic +java-system+ "arraycopy"
-                         (list +java-object+ :int
-                               +java-object+ :int :int) nil)
-      (aload register)))) ;; reload dest value
+    (emit-push-constant-int 0)                            ;; srcPos
+    (emit-push-constant-int (length *closure-variables*))
+    (emit-anewarray +lisp-closure-binding+)             ;; dest
+    (emit 'dup)
+    (astore register)  ;; save dest value
+    (emit-push-constant-int 0)                            ;; destPos
+    (emit-push-constant-int (length *closure-variables*)) ;; length
+    (emit-invokestatic +java-system+ "arraycopy"
+                       (list +java-object+ :int
+                             +java-object+ :int :int) nil)
+    (aload register))) ;; reload dest value
 
 
 




More information about the armedbear-cvs mailing list