summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Powell <djpowell@djpowell.net>2011-01-23 01:54:33 +0000
committerStuart Halloway <stu@Stuart-Halloways-MacBook-Air.local>2011-02-25 14:26:06 -0500
commit004e088ab9364c77c91d09788a62365695f843c3 (patch)
tree79514ecd8b746787de41b181eb77edf950c9d04e
parentd93ef6293bbcc6059e6da77dbf6ed26167f36cdb (diff)
Fix to prevent top-level defs from hanging onto the head of an expression that uses a lazy seq Eg, run using java -Xmx4m : (def x (reduce + (range 1e7)))
Signed-off-by: Stuart Halloway <stu@Stuart-Halloways-MacBook-Air.local>
-rw-r--r--src/jvm/clojure/lang/Compiler.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index fd658d8c..4a2deb2c 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -3221,7 +3221,7 @@ static class InvokeExpr implements Expr{
PersistentVector argvs = PersistentVector.EMPTY;
for(int i = 0; i < args.count(); i++)
argvs = argvs.cons(((Expr) args.nth(i)).eval());
- return fn.applyTo(RT.seq(argvs));
+ return fn.applyTo(RT.seq( Util.ret1(argvs, argvs = null) ));
}
catch(Throwable e)
{