summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-08-06 13:10:33 -0400
committerRich Hickey <richhickey@gmail.com>2009-08-06 13:10:33 -0400
commit3d69750b26d41d72920264ce8d338c20be7383a9 (patch)
tree4442747e3617a58f93448a8816755c4d11bc8c56
parentcff83ebc8e8f81f11ec7e76cc055cff693bd1b28 (diff)
re-enable writable locals for letfn
-rw-r--r--src/jvm/clojure/lang/Compiler.java7
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