From 227cc39e15ca914ff8b9633c96fd9b6c301a5fc7 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Fri, 15 Jul 2016 11:27:09 +0200 Subject: [PATCH] improved efficiency for large messages with small dictionaries --- NEWS | 2 +- lib/compress/zstd_compress.c | 2 +- programs/fuzzer.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index cecc8f49..8c2808e0 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ v0.7.4 Added : new examples -Fixed : segfault when using small dictionaries +Fixed : segfault when using small dictionaries, reported by Felix Handte Modified : default compression level for CLI is 3 diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index ae182a97..98239b5d 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -2695,7 +2695,7 @@ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* zc, const void* dict, size_t dictSize, ZSTD_parameters params, U64 pledgedSrcSize) { - size_t const resetError = ZSTD_resetCCtx_advanced(zc, params, pledgedSrcSize, 1, 0); + size_t const resetError = ZSTD_resetCCtx_advanced(zc, params, pledgedSrcSize, 1, (pledgedSrcSize==0) ); if (ZSTD_isError(resetError)) return resetError; return ZSTD_compress_insertDictionary(zc, dict, dictSize); diff --git a/programs/fuzzer.c b/programs/fuzzer.c index e56d6e1d..b95e930d 100644 --- a/programs/fuzzer.c +++ b/programs/fuzzer.c @@ -209,7 +209,7 @@ static int basicUnitTests(U32 seed, double compressibility) cSize += r); CHECKPLUS(r, ZSTD_compressEnd(ctxDuplicated, (char*)compressedBuffer+cSize, ZSTD_compressBound(CNBuffSize)-cSize), cSize += r); - if (cSize != cSizeOrig) goto _output_error; /* should be identical ==> have same size */ + if (cSize != cSizeOrig) goto _output_error; /* should be identical ==> same size */ } DISPLAYLEVEL(4, "OK (%u bytes : %.2f%%)\n", (U32)cSize, (double)cSize/CNBuffSize*100);