From a3ee9815c784921c5fad48e3567ba0ad87ff62de Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Thu, 2 Dec 2021 14:25:33 -0500 Subject: [PATCH 1/3] Avoid Using Deprecated Functions in Deprecated Code `lib/deprecated` is no longer built by zstd's bundled build files. However, users may try to build these files when they import the source tree into their own build systems. And if they have `-Wdeprecated-declarations` on, this can produce warnings. This PR migrates these files away from using deprecated declarations. This addresses #2767. --- lib/deprecated/zbuff_compress.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/lib/deprecated/zbuff_compress.c b/lib/deprecated/zbuff_compress.c index 2e7226735..ec896264f 100644 --- a/lib/deprecated/zbuff_compress.c +++ b/lib/deprecated/zbuff_compress.c @@ -72,14 +72,36 @@ size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, ZSTD_parameters params, unsigned long long pledgedSrcSize) { + size_t ret; if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* preserve "0 == unknown" behavior */ - return ZSTD_initCStream_advanced(zbc, dict, dictSize, params, pledgedSrcSize); + ret = ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setPledgedSrcSize(zbc, pledgedSrcSize); + + ret = ZSTD_isError(ret) ? ret : ZSTD_checkCParams(params.cParams); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_windowLog, params.cParams.windowLog); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_hashLog, params.cParams.hashLog); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_chainLog, params.cParams.chainLog); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_searchLog, params.cParams.searchLog); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_minMatch, params.cParams.minMatch); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_targetLength, params.cParams.targetLength); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_strategy, params.cParams.strategy); + + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_contentSizeFlag, params.fParams.contentSizeFlag); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_checksumFlag, params.fParams.checksumFlag); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_dictIDFlag, params.fParams.noDictIDFlag); + + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_loadDictionary(zbc, dict, dictSize); + return ZSTD_isError(ret) ? ret : 0; } size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) { - return ZSTD_initCStream_usingDict(zbc, dict, dictSize, compressionLevel); + size_t ret; + ret = ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_compressionLevel, compressionLevel); + ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_loadDictionary(zbc, dict, dictSize); + return ZSTD_isError(ret) ? ret : 0; } size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) From d82d67d07391ba3427a4342d91e783a295a1fff8 Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Thu, 2 Dec 2021 16:06:07 -0500 Subject: [PATCH 2/3] Migrate to `FORWARD_IF_ERROR` --- lib/deprecated/zbuff_compress.c | 42 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/lib/deprecated/zbuff_compress.c b/lib/deprecated/zbuff_compress.c index ec896264f..4ff29337e 100644 --- a/lib/deprecated/zbuff_compress.c +++ b/lib/deprecated/zbuff_compress.c @@ -15,6 +15,7 @@ ***************************************/ #define ZBUFF_STATIC_LINKING_ONLY #include "zbuff.h" +#include "error_private.h" /*-*********************************************************** @@ -72,36 +73,33 @@ size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, ZSTD_parameters params, unsigned long long pledgedSrcSize) { - size_t ret; if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* preserve "0 == unknown" behavior */ - ret = ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setPledgedSrcSize(zbc, pledgedSrcSize); + FORWARD_IF_ERROR(ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setPledgedSrcSize(zbc, pledgedSrcSize), ""); - ret = ZSTD_isError(ret) ? ret : ZSTD_checkCParams(params.cParams); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_windowLog, params.cParams.windowLog); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_hashLog, params.cParams.hashLog); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_chainLog, params.cParams.chainLog); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_searchLog, params.cParams.searchLog); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_minMatch, params.cParams.minMatch); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_targetLength, params.cParams.targetLength); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_strategy, params.cParams.strategy); + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_windowLog, params.cParams.windowLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_hashLog, params.cParams.hashLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_chainLog, params.cParams.chainLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_searchLog, params.cParams.searchLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_minMatch, params.cParams.minMatch), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_targetLength, params.cParams.targetLength), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_strategy, params.cParams.strategy), ""); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_contentSizeFlag, params.fParams.contentSizeFlag); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_checksumFlag, params.fParams.checksumFlag); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_dictIDFlag, params.fParams.noDictIDFlag); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_contentSizeFlag, params.fParams.contentSizeFlag), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_checksumFlag, params.fParams.checksumFlag), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_dictIDFlag, params.fParams.noDictIDFlag), ""); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_loadDictionary(zbc, dict, dictSize); - return ZSTD_isError(ret) ? ret : 0; + FORWARD_IF_ERROR(ZSTD_CCtx_loadDictionary(zbc, dict, dictSize), ""); + return 0; } - size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) { - size_t ret; - ret = ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_setParameter(zbc, ZSTD_c_compressionLevel, compressionLevel); - ret = ZSTD_isError(ret) ? ret : ZSTD_CCtx_loadDictionary(zbc, dict, dictSize); - return ZSTD_isError(ret) ? ret : 0; + FORWARD_IF_ERROR(ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_compressionLevel, compressionLevel), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_loadDictionary(zbc, dict, dictSize), ""); + return 0; } size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) From e6883176527c474176446cd232f3c83c0f51a2e9 Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Thu, 2 Dec 2021 16:53:52 -0500 Subject: [PATCH 3/3] Fix Include Path --- lib/deprecated/zbuff_compress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/deprecated/zbuff_compress.c b/lib/deprecated/zbuff_compress.c index 4ff29337e..51cf158c4 100644 --- a/lib/deprecated/zbuff_compress.c +++ b/lib/deprecated/zbuff_compress.c @@ -15,7 +15,7 @@ ***************************************/ #define ZBUFF_STATIC_LINKING_ONLY #include "zbuff.h" -#include "error_private.h" +#include "../common/error_private.h" /*-***********************************************************