diff options
| author | Yoshiki Matsuda <myskjp@gmail.com> | 2022-05-02 19:59:30 +0900 |
|---|---|---|
| committer | Yoshiki Matsuda <myskjp@gmail.com> | 2022-07-02 22:54:37 +0900 |
| commit | 8d35ff16d2c63d9dc9d9d98d9ebcda4840b08d4b (patch) | |
| tree | 590d9634420a7c6bcc1b1cd371a033d9b2bdb7b4 /compiler/rustc_metadata/src | |
| parent | e11dd802c1aa07ed61de2fdc8a7c79bae1e99f0a (diff) | |
| download | rust-8d35ff16d2c63d9dc9d9d98d9ebcda4840b08d4b.tar.gz rust-8d35ff16d2c63d9dc9d9d98d9ebcda4840b08d4b.zip | |
insert dummy 4 bytes to avoid the breaking change
Diffstat (limited to 'compiler/rustc_metadata/src')
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/decoder.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/encoder.rs | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/decoder.rs b/compiler/rustc_metadata/src/rmeta/decoder.rs index 37ccf592aa5..990ff9e6b40 100644 --- a/compiler/rustc_metadata/src/rmeta/decoder.rs +++ b/compiler/rustc_metadata/src/rmeta/decoder.rs @@ -682,7 +682,7 @@ impl MetadataBlob { } pub(crate) fn get_rustc_version(&self) -> String { - LazyValue::<String>::from_position(NonZeroUsize::new(METADATA_HEADER.len()).unwrap()) + LazyValue::<String>::from_position(NonZeroUsize::new(METADATA_HEADER.len() + 4).unwrap()) .decode(self) } diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index 71642305504..d7991e6a660 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -2221,6 +2221,11 @@ fn encode_metadata_impl(tcx: TyCtxt<'_>, path: impl AsRef<Path>) { .unwrap_or_else(|err| tcx.sess.fatal(&format!("failed to create file encoder: {}", err))); encoder.emit_raw_bytes(METADATA_HEADER); + // Though we had holded the root position historically in this place, we moved it to the end + // of all emitted bytes by #96544. Therefore, now these 4 bytes are just a dummy to avoid the + // breaking change. + encoder.emit_raw_bytes(&[0, 0, 0, 0]).unwrap(); + let source_map_files = tcx.sess.source_map().files(); let source_file_cache = (source_map_files[0].clone(), 0); let required_source_files = Some(GrowableBitSet::with_capacity(source_map_files.len())); |
