Minor, push allocations down

This commit is contained in:
Aleksey Kladov 2020-07-14 15:57:10 +02:00
parent ebb4d29d69
commit dc2094cfa5
3 changed files with 15 additions and 3 deletions

12
baseline.tst Normal file
View file

@ -0,0 +1,12 @@
24ms - SourceRootConfig::partition
24ms - SourceRootConfig::partition
31ms - SourceRootConfig::partition
30ms - SourceRootConfig::partition
35ms - SourceRootConfig::partition
28ms - SourceRootConfig::partition
32ms - SourceRootConfig::partition
26ms - SourceRootConfig::partition
30ms - SourceRootConfig::partition
26ms - SourceRootConfig::partition
32ms - SourceRootConfig::partition
31ms - SourceRootConfig::partition

View file

@ -62,7 +62,7 @@ impl FileSetConfig {
let mut res = vec![FileSet::default(); self.len()];
for (file_id, path) in vfs.iter() {
let root = self.classify(&path, &mut scratch_space);
res[root].insert(file_id, path)
res[root].insert(file_id, path.clone())
}
res
}

View file

@ -90,12 +90,12 @@ impl Vfs {
pub fn file_contents(&self, file_id: FileId) -> &[u8] {
self.get(file_id).as_deref().unwrap()
}
pub fn iter(&self) -> impl Iterator<Item = (FileId, VfsPath)> + '_ {
pub fn iter(&self) -> impl Iterator<Item = (FileId, &VfsPath)> + '_ {
(0..self.data.len())
.map(|it| FileId(it as u32))
.filter(move |&file_id| self.get(file_id).is_some())
.map(move |file_id| {
let path = self.interner.lookup(file_id).clone();
let path = self.interner.lookup(file_id);
(file_id, path)
})
}