diff options
| author | Michael Woerister <michaelwoerister@posteo.net> | 2015-12-25 13:59:02 -0500 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo.net> | 2015-12-28 12:15:44 -0500 |
| commit | fa2a7411e403ec31b426c339c9950af8a1037995 (patch) | |
| tree | 6cac70777036907baec037cdcd5c470ab2e1834e /src/librustc_metadata/decoder.rs | |
| parent | 89753077fc25abb9d04d24a2b2b73984854f7c3a (diff) | |
| download | rust-fa2a7411e403ec31b426c339c9950af8a1037995.tar.gz rust-fa2a7411e403ec31b426c339c9950af8a1037995.zip | |
Use a more efficient encoding for opaque data in RBML.
Diffstat (limited to 'src/librustc_metadata/decoder.rs')
| -rw-r--r-- | src/librustc_metadata/decoder.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 8126970759e..40b19627795 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -833,9 +833,11 @@ pub fn maybe_get_item_mir<'tcx>(cdata: Cmd, }; let mut decoder = reader::Decoder::new(mir_doc); - let mut mir = tls::enter_decoding_context(&dcx, &mut decoder, |_, decoder| { - Decodable::decode(decoder).unwrap() - }); + let mut mir = decoder.read_opaque(|opaque_decoder, _| { + tls::enter_decoding_context(&dcx, opaque_decoder, |_, opaque_decoder| { + Decodable::decode(opaque_decoder) + }) + }).unwrap(); let mut def_id_and_span_translator = MirDefIdAndSpanTranslator { crate_metadata: cdata, @@ -1643,7 +1645,9 @@ pub fn get_imported_filemaps(metadata: &[u8]) -> Vec<codemap::FileMap> { reader::tagged_docs(cm_doc, tag_codemap_filemap).map(|filemap_doc| { let mut decoder = reader::Decoder::new(filemap_doc); - Decodable::decode(&mut decoder).unwrap() + decoder.read_opaque(|opaque_decoder, _| { + Decodable::decode(opaque_decoder) + }).unwrap() }).collect() } |
