[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