From 01c890ee961aa18e2bfea5c07f4cdd9a29053479 Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Fri, 22 Dec 2017 22:41:09 -0500 Subject: [incremental] Specialize encoding and decoding of Fingerprints This saves the storage space used by about 32 bits per `Fingerprint`. On average, this reduces the size of the `/target/{mode}/incremental` folder by roughly 5%. Fixes #45875 --- src/libserialize/opaque.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/libserialize') diff --git a/src/libserialize/opaque.rs b/src/libserialize/opaque.rs index 4b2549a1aed..409366102ba 100644 --- a/src/libserialize/opaque.rs +++ b/src/libserialize/opaque.rs @@ -175,11 +175,12 @@ impl<'a> Decoder<'a> { } pub fn read_raw_bytes(&mut self, s: &mut [u8]) -> Result<(), String> { - let len = s.len(); + let start = self.position; + let end = start + s.len(); - self.position += len; + s.copy_from_slice(&self.data[start..end]); - s.copy_from_slice(&self.data[0..len]); + self.position = end; Ok(()) } -- cgit 1.4.1-3-g733a5