diff options
author | Rich Hickey <richhickey@gmail.com> | 2010-06-09 07:49:16 -0400 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2010-06-09 07:49:16 -0400 |
commit | 50939687bbb85671ca1fecffac742cdb7e92737f (patch) | |
tree | a81f3018e577c0e31f2992077e9af13265124afb | |
parent | 4db0b1f9c37fc0581bc54f13c8dfbe66f8bf02dc (diff) |
move exception handler in eval to properly retain line
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 54da1f52..4d6336f9 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -5581,8 +5581,8 @@ public static Object eval(Object form, boolean freshLoader) throws Exception{ { ISeq s = RT.next(form); for(; RT.next(s) != null; s = RT.next(s)) - eval(RT.first(s),false); - return eval(RT.first(s),false); + eval(RT.first(s), false); + return eval(RT.first(s), false); } else if(form instanceof IPersistentCollection && !(RT.first(form) instanceof Symbol @@ -5599,18 +5599,19 @@ public static Object eval(Object form, boolean freshLoader) throws Exception{ return expr.eval(); } } + catch(Throwable e) + { + if(!(e instanceof CompilerException)) + throw new CompilerException((String) SOURCE.deref(), (Integer) LINE.deref(), e); + else + throw (CompilerException) e; + } finally { Var.popThreadBindings(); } } - catch(Throwable e) - { - if(!(e instanceof CompilerException)) - throw new CompilerException((String) SOURCE.deref(), (Integer) LINE.deref(), e); - else - throw (CompilerException) e; - } + finally { if(createdLoader) |