From 4acd233580824a155c2313164859770267551d4c Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 26 Oct 2021 16:51:09 -0400 Subject: [PATCH] Package Kit: Scale compression levels to the method's levels. Zlib has (for now?) 1-9 as its compression levels, but Zstd has 1-22, so we need to scale and round based on *_COMPRESSION_LEVEL_BEST. --- src/kits/package/hpkg/WriterImplBase.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/kits/package/hpkg/WriterImplBase.cpp b/src/kits/package/hpkg/WriterImplBase.cpp index 7eb4596c89..98be76c01c 100644 --- a/src/kits/package/hpkg/WriterImplBase.cpp +++ b/src/kits/package/hpkg/WriterImplBase.cpp @@ -310,7 +310,8 @@ WriterImplBase::InitHeapReader(size_t headerSize) compressionAlgorithm = CompressionAlgorithmOwner::Create( new(std::nothrow) BZlibCompressionAlgorithm, new(std::nothrow) BZlibCompressionParameters( - fParameters.CompressionLevel())); + (fParameters.CompressionLevel() / float(B_HPKG_COMPRESSION_LEVEL_BEST)) + * B_ZLIB_COMPRESSION_BEST)); compressionAlgorithmReference.SetTo(compressionAlgorithm, true); decompressionAlgorithm = DecompressionAlgorithmOwner::Create( @@ -331,7 +332,8 @@ WriterImplBase::InitHeapReader(size_t headerSize) compressionAlgorithm = CompressionAlgorithmOwner::Create( new(std::nothrow) BZstdCompressionAlgorithm, new(std::nothrow) BZstdCompressionParameters( - fParameters.CompressionLevel())); + (fParameters.CompressionLevel() / float(B_HPKG_COMPRESSION_LEVEL_BEST)) + * B_ZSTD_COMPRESSION_BEST)); compressionAlgorithmReference.SetTo(compressionAlgorithm, true); decompressionAlgorithm = DecompressionAlgorithmOwner::Create(