diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-11-21 17:15:44 -0500 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-11-21 17:15:44 -0500 |
commit | 98366f353463afdc195b9b8fdf9d220bca7d0d6a (patch) | |
tree | 5e1955689eeaec193fa225cd9cb43690a9cf4679 | |
parent | d923bb2443b15753bccfa753e9677504ffb90188 (diff) |
don't create callsites when no surrounding fn/obj support (e.g. top-level inits)
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 03b592df..b1096704 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -2749,7 +2749,7 @@ static class InvokeExpr implements Expr{ { Var fvar = ((VarExpr)fexpr).var; Var pvar = (Var)RT.get(fvar.meta(), protocolKey); - if(pvar != null) + if(pvar != null && PROTOCOL_CALLSITES.isBound()) { this.isProtocol = true; this.siteIndex = registerProtocolCallsite(((VarExpr)fexpr).var); @@ -2950,7 +2950,7 @@ static class InvokeExpr implements Expr{ } } - if(fexpr instanceof KeywordExpr && RT.count(form) == 2) + if(fexpr instanceof KeywordExpr && RT.count(form) == 2 && KEYWORD_CALLSITES.isBound()) { // fexpr = new ConstantExpr(new KeywordCallSite(((KeywordExpr)fexpr).k)); Expr target = analyze(context, RT.second(form)); |