summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/Compiler.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index e1dc0d01..054e5479 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -3668,21 +3668,21 @@ public static Object loadFile(String file) throws Exception{
// return null;
FileInputStream f = new FileInputStream(file);
-
try
{
- Var.pushThreadBindings(RT.map(SOURCE_PATH, file,
- SOURCE, (new File(file)).getName()));
- return load(new InputStreamReader(f));
+ return load(new InputStreamReader(f), file, (new File(file)).getName());
}
finally
{
- Var.popThreadBindings();
f.close();
}
}
public static Object load(Reader rdr) throws Exception{
+ return load(rdr, null, "NO_SOURCE_FILE");
+}
+
+public static Object load(Reader rdr, String sourcePath, String sourceName) throws Exception{
Object EOF = new Object();
Object ret = null;
LineNumberingPushbackReader pushbackReader =
@@ -3692,6 +3692,8 @@ public static Object load(Reader rdr) throws Exception{
{
Var.pushThreadBindings(
RT.map(LOADER, new DynamicClassLoader(),
+ SOURCE_PATH, sourcePath,
+ SOURCE, sourceName,
RT.CURRENT_NS, RT.CURRENT_NS.get(),
LINE_BEFORE, pushbackReader.getLineNumber(),
LINE_AFTER, pushbackReader.getLineNumber()