From c2fdc605697843aa3cb7b5515a20d1d1bc3a72e4 Mon Sep 17 00:00:00 2001 From: Pascal Seitz Date: Mon, 19 Apr 2021 10:55:44 +0200 Subject: [PATCH] fix snap version, fix naming --- Cargo.toml | 2 +- src/store/compression_lz4_block.rs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9ab68aa5e..25d81a8c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ memmap = {version = "0.7", optional=true} lz4_flex = { version = "0.7", default-features = false, features = ["checked-decode"], optional=true } lz4 = {version="1", optional=true} brotli = {version="3.3.0", optional=true} -snap = {version="1.0", optional=true} +snap = {version="1", optional=true} tempfile = {version="3", optional=true} log = "0.4" serde = {version="1", features=["derive"]} diff --git a/src/store/compression_lz4_block.rs b/src/store/compression_lz4_block.rs index e016cdc61..41d6583e9 100644 --- a/src/store/compression_lz4_block.rs +++ b/src/store/compression_lz4_block.rs @@ -12,11 +12,8 @@ pub fn compress(uncompressed: &[u8], compressed: &mut Vec) -> io::Result<()> compressed.extend_from_slice(&[0, 0, 0, 0]); compress_into(uncompressed, compressed); - let size = uncompressed.len() as u32; - compressed[0] = size as u8; - compressed[1] = (size >> 8) as u8; - compressed[2] = (size >> 16) as u8; - compressed[3] = (size >> 24) as u8; + let num_bytes = uncompressed.len() as u32; + compressed[0..4].copy_from_slice(&num_bytes.to_le_bytes()); Ok(()) } @@ -24,9 +21,12 @@ pub fn decompress(compressed: &[u8], decompressed: &mut Vec) -> io::Result<( decompressed.clear(); //next lz4_flex version will support slice as input parameter. //this will make the usage much less ugly - let size = compressed.get(..4).ok_or(io::ErrorKind::InvalidData)?; - let size: &[u8; 4] = size.try_into().unwrap(); - let uncompressed_size = u32::from_le_bytes(*size) as usize; + let uncompressed_size_bytes: &[u8; 4] = compressed + .get(..4) + .ok_or(io::ErrorKind::InvalidData)? + .try_into() + .unwrap(); + let uncompressed_size = u32::from_le_bytes(*uncompressed_size_bytes) as usize; // reserve more than required, because blocked writes may write out of bounds, will be improved // with lz4_flex 1.0 decompressed.reserve(uncompressed_size + 4 + 24);