diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-08-06 13:10:33 -0400 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-08-06 13:10:33 -0400 |
commit | 3d69750b26d41d72920264ce8d338c20be7383a9 (patch) | |
tree | 4442747e3617a58f93448a8816755c4d11bc8c56 | |
parent | cff83ebc8e8f81f11ec7e76cc055cff693bd1b28 (diff) |
re-enable writable locals for letfn
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index c39026d9..c15d4b2f 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -2880,13 +2880,14 @@ static public class ObjExpr implements Expr{ for(ISeq s = RT.keys(closes); s != null; s = s.next()) { LocalBinding lb = (LocalBinding) s.first(); - + //todo - only enable this non-private+writability for letfns where we need it if(lb.getPrimitiveType() != null) - cv.visitField(ACC_PUBLIC + (isVolatile(lb) ? ACC_VOLATILE : ACC_FINAL) +// cv.visitField(ACC_PUBLIC + (isVolatile(lb) ? ACC_VOLATILE : ACC_FINAL) + cv.visitField(0 + (isVolatile(lb) ? ACC_VOLATILE : 0) , lb.name, Type.getType(lb.getPrimitiveType()).getDescriptor(), null, null); else - cv.visitField(ACC_PUBLIC + (oneTimeUse ? 0 : ACC_FINAL) + cv.visitField(0 //+ (oneTimeUse ? 0 : ACC_FINAL) , lb.name, OBJECT_TYPE.getDescriptor(), null, null); } //ctor that takes closed-overs and inits base + fields |