From 8eb5a3f419f2e113e7da6251312b499ba4a28797 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 19 Sep 2023 20:49:45 +1200 Subject: [PATCH] Remove libdeflate slack space no longer needed --- src/deflate/deflater.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/deflate/deflater.rs b/src/deflate/deflater.rs index efffe123..175e88a9 100644 --- a/src/deflate/deflater.rs +++ b/src/deflate/deflater.rs @@ -4,16 +4,14 @@ use libdeflater::*; pub fn deflate(data: &[u8], level: u8, max_size: &AtomicMin) -> PngResult> { let mut compressor = Compressor::new(CompressionLvl::new(level.into()).unwrap()); - // If adhering to a max_size we need to include at least 9 extra bytes of slack space (as specified in docs). let capacity = max_size .get() - .unwrap_or_else(|| compressor.zlib_compress_bound(data.len())) - + 9; + .unwrap_or_else(|| compressor.zlib_compress_bound(data.len())); let mut dest = vec![0; capacity]; let len = compressor .zlib_compress(data, &mut dest) .map_err(|err| match err { - CompressionError::InsufficientSpace => PngError::DeflatedDataTooLong(capacity - 9), + CompressionError::InsufficientSpace => PngError::DeflatedDataTooLong(capacity), })?; dest.truncate(len); Ok(dest)