From 89b9f026c913c0d3e9995f52b49b37f1de1af150 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 13 Jun 2017 17:25:29 -0700 Subject: made level 10 a bit faster at the expense of a little bit of compression ratio. Now speed is intermediate on calgary corpus : 25 - 12 - 8 - 3 --- lib/lz4hc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/lz4hc.c b/lib/lz4hc.c index b987d39..a423aea 100644 --- a/lib/lz4hc.c +++ b/lib/lz4hc.c @@ -182,7 +182,7 @@ FORCE_INLINE int LZ4HC_InsertAndGetWiderMatch ( const BYTE* const dictBase = hc4->dictBase; int const delta = (int)(ip-iLowLimit); int nbAttempts = maxNbAttempts; - U32 matchIndex; + U32 matchIndex; /* First Match */ @@ -192,16 +192,17 @@ FORCE_INLINE int LZ4HC_InsertAndGetWiderMatch ( while ((matchIndex>=lowLimit) && (nbAttempts)) { nbAttempts--; if (matchIndex >= dictLimit) { - const BYTE* matchPtr = base + matchIndex; + const BYTE* const matchPtr = base + matchIndex; if (*(iLowLimit + longest) == *(matchPtr - delta + longest)) { if (LZ4_read32(matchPtr) == LZ4_read32(ip)) { int mlt = MINMATCH + LZ4_count(ip+MINMATCH, matchPtr+MINMATCH, iHighLimit); int back = 0; - while ((ip+back > iLowLimit) - && (matchPtr+back > lowPrefixPtr) - && (ip[back-1] == matchPtr[back-1])) + while ( (ip+back > iLowLimit) + && (matchPtr+back > lowPrefixPtr) + && (ip[back-1] == matchPtr[back-1])) { back--; + } mlt -= back; @@ -548,7 +549,7 @@ static int LZ4HC_compress_generic ( if (limit == limitedDestSize) cLevel = 10; switch (cLevel) { case 10: - return LZ4HC_compress_hashChain(ctx, src, dst, srcSizePtr, dstCapacity, 1 << (15-1), limit); + return LZ4HC_compress_hashChain(ctx, src, dst, srcSizePtr, dstCapacity, 1 << 12, limit); case 11: ctx->searchNum = LZ4HC_getSearchNum(cLevel); return LZ4HC_compress_optimal(ctx, src, dst, *srcSizePtr, dstCapacity, limit, 128, 0); -- cgit v0.12