From 856f91ebef775f5d092b9212da5b4fb4440afc53 Mon Sep 17 00:00:00 2001 From: inikep Date: Tue, 27 Sep 2016 17:14:04 +0200 Subject: [PATCH] redirection to deflateReset and inflateReset --- zlibWrapper/zstd_zlibwrapper.c | 8 ++++++++ zlibWrapper/zstd_zlibwrapper.h | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/zlibWrapper/zstd_zlibwrapper.c b/zlibWrapper/zstd_zlibwrapper.c index 0a7995b0b..803d49111 100644 --- a/zlibWrapper/zstd_zlibwrapper.c +++ b/zlibWrapper/zstd_zlibwrapper.c @@ -205,6 +205,10 @@ ZEXTERN int ZEXPORT z_deflateInit2_ OF((z_streamp strm, int level, int method, int ZWRAP_deflateResetWithoutDict(z_streamp strm) { + LOG_WRAPPERC("- ZWRAP_deflateResetWithoutDict\n"); + if (!g_ZWRAP_useZSTDcompression) + return deflateReset(strm); + strm->total_in = 0; strm->total_out = 0; strm->adler = 0; @@ -520,6 +524,10 @@ ZEXTERN int ZEXPORT z_inflateInit2_ OF((z_streamp strm, int windowBits, int ZWRAP_inflateResetWithoutDict(z_streamp strm) { + LOG_WRAPPERD("- ZWRAP_inflateResetWithoutDict\n"); + if (g_ZWRAPdecompressionType == ZWRAP_FORCE_ZLIB || !strm->reserved) + return inflateReset(strm); + { ZWRAP_DCtx* zwd = (ZWRAP_DCtx*) strm->state; if (zwd == NULL) return Z_STREAM_ERROR; if (zwd->zbd) { diff --git a/zlibWrapper/zstd_zlibwrapper.h b/zlibWrapper/zstd_zlibwrapper.h index 9df055814..f2e4ce265 100644 --- a/zlibWrapper/zstd_zlibwrapper.h +++ b/zlibWrapper/zstd_zlibwrapper.h @@ -45,10 +45,13 @@ int ZWRAP_isUsingZSTDcompression(void); as this case is automatically detected. */ int ZWRAP_setPledgedSrcSize(z_streamp strm, unsigned long long pledgedSrcSize); -/* similar to deflateReset but preserves dictionary set using deflateSetDictionary */ +/* Similar to deflateReset but preserves dictionary set using deflateSetDictionary. + It should improve compression speed because there will be less calls to deflateSetDictionary + When using zlib compression this method redirects to deflateReset. */ int ZWRAP_deflateResetWithoutDict(z_streamp strm); + /*** DECOMPRESSION ***/ typedef enum { ZWRAP_FORCE_ZLIB, ZWRAP_AUTO } ZWRAP_decompress_type; @@ -62,7 +65,8 @@ ZWRAP_decompress_type ZWRAP_getDecompressionType(void); int ZWRAP_isUsingZSTDdecompression(z_streamp strm); /* Similar to inflateReset but preserves dictionary set using inflateSetDictionary. - inflate() will return Z_NEED_DICT only for the first time. */ + inflate() will return Z_NEED_DICT only for the first time what will improve decompression speed. + For zlib streams this method redirects to inflateReset. */ int ZWRAP_inflateResetWithoutDict(z_streamp strm);