From d514281e730a0798c8f386829e6d37632db6adef Mon Sep 17 00:00:00 2001 From: i-do-cpp <62053234+i-do-cpp@users.noreply.github.com> Date: Mon, 31 Aug 2020 09:25:43 +0200 Subject: [PATCH] Fix setParameter not falling back to default compression level on 0 value See documentation for `ZSTD_c_compressionLevel`: `Special: value 0 means default, which is controlled by ZSTD_CLEVEL_DEFAULT` --- lib/compress/zstd_compress.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index a5ffcf1ea..25160d0d9 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -540,7 +540,9 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, case ZSTD_c_compressionLevel : { FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); - if (value) { /* 0 : does not change current level */ + if (value == 0) + CCtxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ + else CCtxParams->compressionLevel = value; } if (CCtxParams->compressionLevel >= 0) return (size_t)CCtxParams->compressionLevel; -- 2.47.3