Skip to content

Commit d01b89b

Browse files
incr.comp.: Provide session to some more decoding contexts.
1 parent d948af1 commit d01b89b

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

src/librustc_metadata/creader.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -258,14 +258,15 @@ impl<'a> CrateLoader<'a> {
258258
let cnum_map = self.resolve_crate_deps(root, &crate_root, &metadata, cnum, span, dep_kind);
259259

260260
let def_path_table = record_time(&self.sess.perf_stats.decode_def_path_tables_time, || {
261-
crate_root.def_path_table.decode(&metadata)
261+
crate_root.def_path_table.decode((&metadata, self.sess))
262262
});
263263

264-
let exported_symbols = crate_root.exported_symbols.decode(&metadata).collect();
265-
264+
let exported_symbols = crate_root.exported_symbols
265+
.decode((&metadata, self.sess))
266+
.collect();
266267
let trait_impls = crate_root
267268
.impls
268-
.decode(&metadata)
269+
.decode((&metadata, self.sess))
269270
.map(|trait_impls| (trait_impls.trait_id, trait_impls.impls))
270271
.collect();
271272

@@ -298,7 +299,7 @@ impl<'a> CrateLoader<'a> {
298299
let dllimports: FxHashSet<_> = cmeta
299300
.root
300301
.native_libraries
301-
.decode(&cmeta)
302+
.decode((&cmeta, self.sess))
302303
.filter(|lib| relevant_lib(self.sess, lib) &&
303304
lib.kind == cstore::NativeLibraryKind::NativeUnknown)
304305
.flat_map(|lib| {

src/librustc_metadata/cstore_impl.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ provide! { <'tcx> tcx, def_id, other, cdata,
183183
is_no_builtins => { cdata.is_no_builtins(tcx.sess) }
184184
impl_defaultness => { cdata.get_impl_defaultness(def_id.index) }
185185
exported_symbol_ids => { Rc::new(cdata.get_exported_symbols()) }
186-
native_libraries => { Rc::new(cdata.get_native_libraries()) }
186+
native_libraries => { Rc::new(cdata.get_native_libraries(tcx.sess)) }
187187
plugin_registrar_fn => {
188188
cdata.root.plugin_registrar_fn.map(|index| {
189189
DefId { krate: def_id.krate, index }

src/librustc_metadata/decoder.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,20 @@ impl<'a, 'tcx> Metadata<'a, 'tcx> for &'a MetadataBlob {
8787
}
8888
}
8989

90+
91+
impl<'a, 'tcx> Metadata<'a, 'tcx> for (&'a MetadataBlob, &'a Session) {
92+
fn raw_bytes(self) -> &'a [u8] {
93+
let (blob, _) = self;
94+
&blob.0
95+
}
96+
97+
fn sess(self) -> Option<&'a Session> {
98+
let (_, sess) = self;
99+
Some(sess)
100+
}
101+
}
102+
103+
90104
impl<'a, 'tcx> Metadata<'a, 'tcx> for &'a CrateMetadata {
91105
fn raw_bytes(self) -> &'a [u8] {
92106
self.blob.raw_bytes()
@@ -1017,8 +1031,8 @@ impl<'a, 'tcx> CrateMetadata {
10171031
}
10181032

10191033

1020-
pub fn get_native_libraries(&self) -> Vec<NativeLibrary> {
1021-
self.root.native_libraries.decode(self).collect()
1034+
pub fn get_native_libraries(&self, sess: &Session) -> Vec<NativeLibrary> {
1035+
self.root.native_libraries.decode((self, sess)).collect()
10221036
}
10231037

10241038
pub fn get_dylib_dependency_formats(&self) -> Vec<(CrateNum, LinkagePreference)> {

0 commit comments

Comments
 (0)