From: inikep Date: Tue, 20 Sep 2016 10:54:26 +0000 (+0200) Subject: implemented deflateReset X-Git-Tag: v1.1.0~3^2~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c038c30048c0fc48907c97905c574800508a211f;p=thirdparty%2Fzstd.git implemented deflateReset --- diff --git a/zlibWrapper/README.md b/zlibWrapper/README.md index 5ea542f23..e86da2f58 100644 --- a/zlibWrapper/README.md +++ b/zlibWrapper/README.md @@ -73,10 +73,12 @@ Supported methods: - deflate (with exception of Z_FULL_FLUSH) - deflateSetDictionary - deflateEnd +- deflateReset - deflateBound - inflateInit - inflate - inflateSetDictionary +- inflateReset - compress - compress2 - compressBound @@ -88,7 +90,6 @@ Ignored methods (they do nothing): Unsupported methods: - gzip file access functions - deflateCopy -- deflateReset - deflateTune - deflatePending - deflatePrime @@ -96,7 +97,6 @@ Unsupported methods: - inflateGetDictionary - inflateCopy - inflateSync -- inflateReset - inflateReset2 - inflatePrime - inflateMark diff --git a/zlibWrapper/zstd_zlibwrapper.c b/zlibWrapper/zstd_zlibwrapper.c index 3e4d0a45f..d842ae75f 100644 --- a/zlibWrapper/zstd_zlibwrapper.c +++ b/zlibWrapper/zstd_zlibwrapper.c @@ -173,7 +173,16 @@ ZEXTERN int ZEXPORT z_deflateReset OF((z_streamp strm)) if (!g_useZSTD) return deflateReset(strm); - FINISH_WITH_ERR(strm, "deflateReset is not supported!"); + { ZWRAP_CCtx* zwc = (ZWRAP_CCtx*) strm->state; + LOG_WRAPPER("- z_deflateReset\n"); + if (zwc == NULL) return Z_STREAM_ERROR; + { size_t const errorCode = ZSTD_resetCStream(zwc->zbc, 0); + if (ZSTD_isError(errorCode)) return ZWRAPC_finish_with_error(zwc, strm, 0); } + } + + strm->total_in = 0; + strm->total_out = 0; + return Z_OK; }