From 58ea585878008db36fa20025703757f0b70836eb Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Tue, 30 Jul 2019 15:21:52 -0700 Subject: [lz4hc] Fix minor pessimization in extDict pattern matching We should be comparing `matchPtr` not `ip`. This bug just means that this branch was not taken, so we might miss some of the forward length. --- lib/lz4hc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/lz4hc.c b/lib/lz4hc.c index 4122af4..a0b8c48 100644 --- a/lib/lz4hc.c +++ b/lib/lz4hc.c @@ -335,7 +335,7 @@ LZ4HC_InsertAndGetWiderMatch ( const BYTE* const dictStart = dictBase + hc4->lowLimit; const BYTE* const iLimit = extDict ? dictBase + dictLimit : iHighLimit; size_t forwardPatternLength = LZ4HC_countPattern(matchPtr+sizeof(pattern), iLimit, pattern) + sizeof(pattern); - if (extDict && ip + forwardPatternLength == iLimit) { + if (extDict && matchPtr + forwardPatternLength == iLimit) { U32 const rotatedPattern = LZ4HC_rotatePattern(forwardPatternLength, pattern); forwardPatternLength += LZ4HC_countPattern(lowPrefixPtr, iHighLimit, rotatedPattern); } -- cgit v0.12