]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fixed #718, reported by @GregSlazinski, solution suggested by @mcmilk
authorYann Collet <cyan@fb.com>
Thu, 6 Jul 2017 08:42:46 +0000 (01:42 -0700)
committerYann Collet <cyan@fb.com>
Thu, 6 Jul 2017 08:42:46 +0000 (01:42 -0700)
lib/common/zstd_internal.h
lib/decompress/zstd_decompress.c

index f2c4e6249fb89651fb1a7473aba351d92ca1496d..f49f6a13c07d69015954f7050463b109a16974e5 100644 (file)
@@ -331,4 +331,16 @@ size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs,
 ZSTD_parameters ZSTD_getParamsFromCDict(const ZSTD_CDict* cdict);
 
 
+typedef struct {
+    blockType_e blockType;
+    U32 lastBlock;
+    U32 origSize;
+} blockProperties_t;
+
+/*! ZSTD_getcBlockSize() :
+*   Provides the size of compressed block from block header `src` */
+size_t ZSTD_getcBlockSize(const void* src, size_t srcSize,
+                          blockProperties_t* bpPtr);
+
+
 #endif   /* ZSTD_CCOMMON_H_MODULE */
index 7cb1b3f879c96d3575fd6b9ae5fd0beb209d8bc1..6eca1c4717304d2270bdf493e16af991599093bf 100644 (file)
@@ -53,7 +53,7 @@
 #  include "zstd_legacy.h"
 #endif
 
-#if defined(_MSC_VER) && !defined(_M_IA64)  /* _mm_prefetch() is not defined for ia64 */
+#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86))  /* _mm_prefetch() is not defined outside of x86/x64 */
 #  include <mmintrin.h>   /* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */
 #  define ZSTD_PREFETCH(ptr)   _mm_prefetch((const char*)ptr, _MM_HINT_T0)
 #elif defined(__GNUC__)
@@ -466,13 +466,6 @@ static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t he
 }
 
 
-typedef struct
-{
-    blockType_e blockType;
-    U32 lastBlock;
-    U32 origSize;
-} blockProperties_t;
-
 /*! ZSTD_getcBlockSize() :
 *   Provides the size of compressed block from block header `src` */
 size_t ZSTD_getcBlockSize(const void* src, size_t srcSize,