summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-04-30 21:15:01 +0000
committerRich Hickey <richhickey@gmail.com>2008-04-30 21:15:01 +0000
commit1f4466a7a54f26f78f47d4fa3f5b6e6d786aefcc (patch)
tree3fea2d775cb23f0f6559591fa6716a16cfb5f17a /src
parentddbc5777098d58296d52ee2872f8a79e72f48ff8 (diff)
fix off-by-one in emitClearLocals
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/Compiler.java5
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++)