syntax: avoid loading the same source-file multiple times

We already had a cache for file contents, but we read the source-file
before testing the cache, causing obvious slowness, so this just avoids
loading the source-file when the cache already has the contents.
This commit is contained in:
Ariel Ben-Yehuda
2017-08-01 14:17:11 +03:00
parent 91aff5775d
commit c9d14a846f
2 changed files with 7 additions and 3 deletions

View File

@@ -561,8 +561,9 @@ impl CodeMapper for CodeMap {
sp
}
fn ensure_filemap_source_present(&self, file_map: Rc<FileMap>) -> bool {
let src = self.file_loader.read_file(Path::new(&file_map.name)).ok();
return file_map.add_external_src(src)
file_map.add_external_src(
|| self.file_loader.read_file(Path::new(&file_map.name)).ok()
)
}
}