diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-05-22 13:46:14 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-10-15 18:23:50 +0300 |
| commit | e505857914795dd2171acb4193a010f9d09ebc7c (patch) | |
| tree | f07bb97d4611ebd902f4307a1e2ed04b0144ea2e | |
| parent | 437ca55f23b7ed0051334a7e38ecabd83a173b53 (diff) | |
| download | rust-e505857914795dd2171acb4193a010f9d09ebc7c.tar.gz rust-e505857914795dd2171acb4193a010f9d09ebc7c.zip | |
rustc_metadata: remove now-redundant length from the start of the encoding.
| -rw-r--r-- | src/librustc_metadata/index.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/librustc_metadata/index.rs b/src/librustc_metadata/index.rs index 037f9d35630..8db7a51700b 100644 --- a/src/librustc_metadata/index.rs +++ b/src/librustc_metadata/index.rs @@ -110,12 +110,8 @@ impl Index<'tcx> { crate fn write_index(&self, buf: &mut Encoder) -> Lazy<[Self]> { let pos = buf.position(); - - // First we write the length of the lower range ... - buf.emit_raw_bytes(&(self.positions.len() as u32 / 4).to_le_bytes()); - // ... then the values. buf.emit_raw_bytes(&self.positions); - Lazy::from_position_and_meta(pos as usize, self.positions.len() / 4 + 1) + Lazy::from_position_and_meta(pos as usize, self.positions.len() / 4) } } @@ -124,12 +120,12 @@ impl Lazy<[Index<'tcx>]> { /// DefIndex (if any). #[inline(never)] crate fn lookup(&self, bytes: &[u8], def_index: DefIndex) -> Option<Lazy<Entry<'tcx>>> { - let bytes = &bytes[self.position..]; debug!("Index::lookup: index={:?} len={:?}", def_index, self.meta); - let position = u32::read_from_bytes_at(bytes, 1 + def_index.index()); + let bytes = &bytes[self.position..][..self.meta * 4]; + let position = u32::read_from_bytes_at(bytes, def_index.index()); if position == u32::MAX { debug!("Index::lookup: position=u32::MAX"); None |
