diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-04-30 21:15:01 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-04-30 21:15:01 +0000 |
commit | 1f4466a7a54f26f78f47d4fa3f5b6e6d786aefcc (patch) | |
tree | 3fea2d775cb23f0f6559591fa6716a16cfb5f17a | |
parent | ddbc5777098d58296d52ee2872f8a79e72f48ff8 (diff) |
fix off-by-one in emitClearLocals
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index dacdf0f0..c1df1537 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -2951,12 +2951,13 @@ static class FnMethod{ } void emitClearLocals(GeneratorAdapter gen){ - for(int i = 0; i < numParams(); i++) + for(int i = 1; i < numParams()+1; i++) { if(!localsUsedInCatchFinally.contains(i)) { gen.visitInsn(Opcodes.ACONST_NULL); - gen.storeArg(i); + gen.visitVarInsn(OBJECT_TYPE.getOpcode(Opcodes.ISTORE), i); +// gen.storeArg(i); } } for(int i = numParams() + 1; i < maxLocal + 1; i++) |