From: Yann Collet Date: Thu, 2 Nov 2017 22:05:45 +0000 (-0700) Subject: searching match leading strictly farther does not work X-Git-Tag: upstream/1.9.3~11^2~25^2~26 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd992f12e4be48b4eed48b3898153f2c80bc014b;p=platform%2Fupstream%2Flz4.git searching match leading strictly farther does not work sometimes, it's better to re-use same match but start it later, in order to get shorter matchlength code --- diff --git a/lib/lz4opt.h b/lib/lz4opt.h index 25ceaad..1e696f9 100644 --- a/lib/lz4opt.h +++ b/lib/lz4opt.h @@ -318,7 +318,7 @@ static int LZ4HC_compress_optimal ( DEBUGLOG(7, "search at rPos:%u", cur); //nb_matches = LZ4HC_BinTree_GetAllMatches(ctx, curPtr, matchlimit, MINMATCH-1, matches, fullUpdate); nb_matches = LZ4HC_HashChain_GetAllMatches(ctx, curPtr, matchlimit, MINMATCH-1, matches, fullUpdate); - //nb_matches = LZ4HC_HashChain_GetAllMatches(ctx, curPtr, matchlimit, last_match_pos - cur + 1, matches, fullUpdate); /* only works if last_match_pos is really the last match pos */ + //nb_matches = LZ4HC_HashChain_GetAllMatches(ctx, curPtr, matchlimit, last_match_pos - cur - 1, matches, fullUpdate); /* only test matches of a minimum length */ if (!nb_matches) continue; if ( ((size_t)matches[nb_matches-1].len > sufficient_len)