diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-04-22 18:53:10 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-04-22 18:53:10 +0000 |
commit | d84e011d9ffe1431f8641146e7637775679d73d5 (patch) | |
tree | 34af3dfd086a46b04915f70975b4d317de4bcd45 /src | |
parent | 282d5a0e2ad4a87af87ac0e93c4f6933cf113d8a (diff) |
moved var push outside of try in load()
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 19f49953..06a17533 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -3407,13 +3407,12 @@ public static Object macroexpand1(Object x) throws Exception{ private static Expr analyzeSeq(C context, ISeq form, String name) throws Exception{ Integer line = (Integer) LINE.get(); + if(RT.meta(form) != null && RT.meta(form).containsKey(RT.LINE_KEY)) + line = (Integer) RT.meta(form).valAt(RT.LINE_KEY); + Var.pushThreadBindings( + RT.map(LINE, line)); try { - if(RT.meta(form) != null && RT.meta(form).containsKey(RT.LINE_KEY)) - line = (Integer) RT.meta(form).valAt(RT.LINE_KEY); - Var.pushThreadBindings( - RT.map(LINE, line)); - Object me = macroexpand1(form); if(me != form) return analyze(context, me); @@ -3443,13 +3442,13 @@ private static Expr analyzeSeq(C context, ISeq form, String name) throws Excepti public static Object eval(Object form) throws Exception{ boolean createdLoader = false; + if(!LOADER.isBound()) + { + Var.pushThreadBindings(RT.map(LOADER, RT.makeClassLoader())); + createdLoader = true; + } try { - if(!LOADER.isBound()) - { - Var.pushThreadBindings(RT.map(LOADER, RT.makeClassLoader())); - createdLoader = true; - } Expr expr = analyze(C.EVAL, form); return expr.eval(); } @@ -3688,16 +3687,17 @@ public static Object load(Reader rdr, String sourcePath, String sourceName) thro LineNumberingPushbackReader pushbackReader = (rdr instanceof LineNumberingPushbackReader) ? (LineNumberingPushbackReader) rdr : new LineNumberingPushbackReader(rdr); + Var.pushThreadBindings( + RT.map(LOADER, RT.makeClassLoader(), + SOURCE_PATH, sourcePath, + SOURCE, sourceName, + RT.CURRENT_NS, RT.CURRENT_NS.get(), + LINE_BEFORE, pushbackReader.getLineNumber(), + LINE_AFTER, pushbackReader.getLineNumber() + )); + try { - Var.pushThreadBindings( - RT.map(LOADER, RT.makeClassLoader(), - SOURCE_PATH, sourcePath, - SOURCE, sourceName, - RT.CURRENT_NS, RT.CURRENT_NS.get(), - LINE_BEFORE, pushbackReader.getLineNumber(), - LINE_AFTER, pushbackReader.getLineNumber() - )); for(Object r = LispReader.read(pushbackReader, false, EOF, false); r != EOF; r = LispReader.read(pushbackReader, false, EOF, false)) { |