From: Yann Collet Date: Sat, 5 May 2018 20:46:45 +0000 (-0700) Subject: fixed SC.opt integration with regular HC parser X-Git-Tag: upstream/1.9.3~8^2^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d097bf93f853ddefdd05321d65cf7b90e3171c14;p=platform%2Fupstream%2Flz4.git fixed SC.opt integration with regular HC parser Only enabled when searching forward. note : it slighly improves compression ratio, but measurably decreases speed. Trade-off to analyse. --- diff --git a/lib/lz4hc.c b/lib/lz4hc.c index 7e2fcb3..0f37f42 100644 --- a/lib/lz4hc.c +++ b/lib/lz4hc.c @@ -280,9 +280,9 @@ LZ4HC_InsertAndGetWiderMatch ( *startpos = ip + back; } } } - if (mlt == longest) { /* better match => select a better chain */ - assert(longest >= MINMATCH); - if (1 && matchIndex + longest <= ipIndex) { + if ( lookBackLength==0 /* search forward only */ + && mlt==longest) { /* better match => select a better chain */ + if (matchIndex + longest <= ipIndex) { U32 distanceToNextMatch = 1; int pos; for (pos = 0; pos <= longest - MINMATCH; pos++) { @@ -301,7 +301,7 @@ LZ4HC_InsertAndGetWiderMatch ( } { U32 const distNextMatch = DELTANEXTU16(chainTable, matchIndex); - if (1 && patternAnalysis && distNextMatch==1 && matchChainPos==0) { + if (patternAnalysis && distNextMatch==1 && matchChainPos==0) { U32 const matchCandidateIdx = matchIndex-1; /* may be a repeated pattern */ if (repeat == rep_untested) {