From 8e4e7c06c75362540716257e802e6950926d7266 Mon Sep 17 00:00:00 2001 From: Emmanuel Marty Date: Tue, 19 Nov 2019 19:48:39 +0100 Subject: [PATCH] Fix calculation for promoting literal+match seqs --- src/shrink_block_v2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/shrink_block_v2.c b/src/shrink_block_v2.c index 43bd7fd..9febbb1 100644 --- a/src/shrink_block_v2.c +++ b/src/shrink_block_v2.c @@ -505,12 +505,13 @@ static int lzsa_optimize_command_count_v2(lzsa_compressor *pCompressor, const un if (pMatch->length == 0 && (i + 1) < (nEndOffset - LAST_LITERALS) && pBestMatch[i + 1].length >= MIN_MATCH_SIZE_V2 && + pBestMatch[i + 1].length < MAX_VARLEN && pBestMatch[i + 1].offset && i >= pBestMatch[i + 1].offset && (i + pBestMatch[i + 1].length + 1) <= (nEndOffset - LAST_LITERALS) && !memcmp(pInWindow + i - (pBestMatch[i + 1].offset), pInWindow + i, pBestMatch[i + 1].length + 1)) { - int nCurLenSize = lzsa_get_match_varlen_size_v2(pBestMatch[i + 1].length); - int nReducedLenSize = lzsa_get_match_varlen_size_v2(pBestMatch[i + 1].length + 1); + int nCurLenSize = lzsa_get_match_varlen_size_v2(pBestMatch[i + 1].length - MIN_MATCH_SIZE_V2); + int nReducedLenSize = lzsa_get_match_varlen_size_v2(pBestMatch[i + 1].length + 1 - MIN_MATCH_SIZE_V2); if ((nReducedLenSize - nCurLenSize) <= 8) { /* Merge */