]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
implemented inflateReset2
authorinikep <inikep@gmail.com>
Tue, 20 Sep 2016 14:40:50 +0000 (16:40 +0200)
committerinikep <inikep@gmail.com>
Tue, 20 Sep 2016 14:40:50 +0000 (16:40 +0200)
zlibWrapper/README.md
zlibWrapper/zstd_zlibwrapper.c

index e86da2f5800c4d8966108413e528b208452ce002..e90a5189afd773b1b51919f274c285d022709833 100644 (file)
@@ -79,6 +79,7 @@ Supported methods:
 - inflate
 - inflateSetDictionary
 - inflateReset
+- inflateReset2
 - compress
 - compress2
 - compressBound
@@ -97,7 +98,6 @@ Unsupported methods:
 - inflateGetDictionary
 - inflateCopy
 - inflateSync
-- inflateReset2
 - inflatePrime
 - inflateMark
 - inflateGetHeader
index 90ec590d095ded50070a965e10b08ef5f6b51d4e..d3f95fb9c6f397bfe5b30e161b276c01eb36552f 100644 (file)
@@ -413,6 +413,7 @@ ZEXTERN int ZEXPORT z_inflateInit2_ OF((z_streamp strm, int  windowBits,
     int ret = z_inflateInit_ (strm, version, stream_size);
     if (ret == Z_OK) {
         ZWRAP_DCtx* zwd = (ZWRAP_DCtx*)strm->state;
+        if (zwd == NULL) return Z_STREAM_ERROR;
         zwd->windowBits = windowBits;
     }
     return ret;
@@ -438,6 +439,25 @@ ZEXTERN int ZEXPORT z_inflateReset OF((z_streamp strm))
 }
 
 
+#if ZLIB_VERNUM >= 0x1240
+ZEXTERN int ZEXPORT z_inflateReset2 OF((z_streamp strm,
+                                      int windowBits))
+{
+    if (!strm->reserved)
+        return inflateReset2(strm, windowBits);
+
+    {   int ret = z_inflateReset (strm);
+        if (ret == Z_OK) {
+            ZWRAP_DCtx* zwd = (ZWRAP_DCtx*)strm->state;
+            if (zwd == NULL) return Z_STREAM_ERROR;
+            zwd->windowBits = windowBits;
+        }
+        return ret;
+    }
+}
+#endif
+
+
 ZEXTERN int ZEXPORT z_inflateSetDictionary OF((z_streamp strm,
                                              const Bytef *dictionary,
                                              uInt  dictLength))
@@ -717,17 +737,6 @@ ZEXTERN int ZEXPORT z_inflateCopy OF((z_streamp dest,
 }
 
 
-#if ZLIB_VERNUM >= 0x1240
-ZEXTERN int ZEXPORT z_inflateReset2 OF((z_streamp strm,
-                                      int windowBits))
-{
-    if (!strm->reserved)
-        return inflateReset2(strm, windowBits);
-    FINISH_WITH_ERR(strm, "inflateReset2 is not supported!");
-}
-#endif
-
-
 #if ZLIB_VERNUM >= 0x1240
 ZEXTERN long ZEXPORT z_inflateMark OF((z_streamp strm))
 {