extzstd 0.0.3.CONCEPT-x86-mingw32 → 0.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/HISTORY.ja +5 -0
 - data/LICENSE +6 -6
 - data/README.md +35 -22
 - data/contrib/zstd/LICENSE +13 -9
 - data/contrib/zstd/README.md +37 -44
 - data/contrib/zstd/common/entropy_common.c +33 -39
 - data/contrib/zstd/common/error_private.c +43 -0
 - data/contrib/zstd/common/error_private.h +11 -60
 - data/contrib/zstd/common/fse.h +11 -5
 - data/contrib/zstd/common/fse_decompress.c +14 -16
 - data/contrib/zstd/common/huf.h +1 -1
 - data/contrib/zstd/common/mem.h +36 -43
 - data/contrib/zstd/common/xxhash.c +31 -18
 - data/contrib/zstd/common/xxhash.h +71 -35
 - data/contrib/zstd/common/zbuff.h +29 -35
 - data/contrib/zstd/common/zstd_common.c +24 -32
 - data/contrib/zstd/common/zstd_errors.h +60 -0
 - data/contrib/zstd/common/zstd_internal.h +109 -80
 - data/contrib/zstd/compress/fse_compress.c +9 -6
 - data/contrib/zstd/compress/huf_compress.c +30 -74
 - data/contrib/zstd/compress/zbuff_compress.c +43 -51
 - data/contrib/zstd/compress/zstd_compress.c +953 -763
 - data/contrib/zstd/compress/zstd_opt.h +115 -261
 - data/contrib/zstd/decompress/huf_decompress.c +29 -40
 - data/contrib/zstd/decompress/zbuff_decompress.c +36 -78
 - data/contrib/zstd/decompress/zstd_decompress.c +976 -496
 - data/contrib/zstd/dictBuilder/divsufsort.h +5 -5
 - data/contrib/zstd/dictBuilder/zdict.c +194 -229
 - data/contrib/zstd/dictBuilder/zdict.h +66 -68
 - data/contrib/zstd/legacy/zstd_legacy.h +168 -49
 - data/contrib/zstd/legacy/zstd_v01.c +95 -178
 - data/contrib/zstd/legacy/zstd_v01.h +12 -32
 - data/contrib/zstd/legacy/zstd_v02.c +48 -274
 - data/contrib/zstd/legacy/zstd_v02.h +12 -32
 - data/contrib/zstd/legacy/zstd_v03.c +48 -274
 - data/contrib/zstd/legacy/zstd_v03.h +12 -32
 - data/contrib/zstd/legacy/zstd_v04.c +63 -320
 - data/contrib/zstd/legacy/zstd_v04.h +13 -33
 - data/contrib/zstd/legacy/zstd_v05.c +80 -345
 - data/contrib/zstd/legacy/zstd_v05.h +9 -31
 - data/contrib/zstd/legacy/zstd_v06.c +48 -458
 - data/contrib/zstd/legacy/zstd_v06.h +41 -67
 - data/contrib/zstd/legacy/zstd_v07.c +4544 -0
 - data/contrib/zstd/legacy/zstd_v07.h +173 -0
 - data/contrib/zstd/zstd.h +640 -0
 - data/ext/extconf.rb +7 -3
 - data/ext/extzstd.c +263 -106
 - data/ext/extzstd.h +8 -6
 - data/ext/extzstd_nogvls.h +0 -117
 - data/ext/extzstd_stream.c +347 -0
 - data/ext/zstd_common.c +8 -0
 - data/ext/zstd_compress.c +6 -0
 - data/ext/zstd_decompress.c +5 -0
 - data/ext/zstd_dictbuilder.c +5 -0
 - data/ext/zstd_legacy_v07.c +1 -0
 - data/gemstub.rb +18 -16
 - data/lib/2.1/extzstd.so +0 -0
 - data/lib/2.2/extzstd.so +0 -0
 - data/lib/2.3/extzstd.so +0 -0
 - data/lib/extzstd/version.rb +1 -1
 - data/lib/extzstd.rb +77 -43
 - data/test/test_basic.rb +11 -6
 - metadata +23 -11
 - data/contrib/zstd/common/error_public.h +0 -77
 - data/contrib/zstd/common/zstd.h +0 -475
 - data/ext/extzstd_buffered.c +0 -265
 - data/ext/zstd_amalgam.c +0 -18
 - data/lib/2.0/extzstd.so +0 -0
 
| 
         @@ -1,42 +1,19 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
               modification, are permitted provided that the following conditions are
         
     | 
| 
       10 
     | 
    
         
            -
               met:
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                   * Redistributions of source code must retain the above copyright
         
     | 
| 
       13 
     | 
    
         
            -
               notice, this list of conditions and the following disclaimer.
         
     | 
| 
       14 
     | 
    
         
            -
                   * Redistributions in binary form must reproduce the above
         
     | 
| 
       15 
     | 
    
         
            -
               copyright notice, this list of conditions and the following disclaimer
         
     | 
| 
       16 
     | 
    
         
            -
               in the documentation and/or other materials provided with the
         
     | 
| 
       17 
     | 
    
         
            -
               distribution.
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
               THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
         
     | 
| 
       20 
     | 
    
         
            -
               "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         
     | 
| 
       21 
     | 
    
         
            -
               LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
         
     | 
| 
       22 
     | 
    
         
            -
               A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         
     | 
| 
       23 
     | 
    
         
            -
               OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         
     | 
| 
       24 
     | 
    
         
            -
               SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
         
     | 
| 
       25 
     | 
    
         
            -
               LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
         
     | 
| 
       26 
     | 
    
         
            -
               DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
         
     | 
| 
       27 
     | 
    
         
            -
               THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         
     | 
| 
       28 
     | 
    
         
            -
               (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         
     | 
| 
       29 
     | 
    
         
            -
               OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         
     | 
| 
      
 1 
     | 
    
         
            +
            /**
         
     | 
| 
      
 2 
     | 
    
         
            +
             * Copyright (c) 2016-present, Yann Collet, Facebook, Inc.
         
     | 
| 
      
 3 
     | 
    
         
            +
             * All rights reserved.
         
     | 
| 
      
 4 
     | 
    
         
            +
             *
         
     | 
| 
      
 5 
     | 
    
         
            +
             * This source code is licensed under the BSD-style license found in the
         
     | 
| 
      
 6 
     | 
    
         
            +
             * LICENSE file in the root directory of this source tree. An additional grant
         
     | 
| 
      
 7 
     | 
    
         
            +
             * of patent rights can be found in the PATENTS file in the same directory.
         
     | 
| 
      
 8 
     | 
    
         
            +
             */
         
     | 
| 
       30 
9 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
                You can contact the author at :
         
     | 
| 
       32 
     | 
    
         
            -
                - Homepage : http://www.zstd.net/
         
     | 
| 
       33 
     | 
    
         
            -
            ****************************************************************** */
         
     | 
| 
       34 
10 
     | 
    
         | 
| 
       35 
11 
     | 
    
         
             
            /*- Dependencies -*/
         
     | 
| 
       36 
12 
     | 
    
         
             
            #include "zstd_v06.h"
         
     | 
| 
       37 
13 
     | 
    
         
             
            #include <stddef.h>    /* size_t, ptrdiff_t */
         
     | 
| 
       38 
14 
     | 
    
         
             
            #include <string.h>    /* memcpy */
         
     | 
| 
       39 
15 
     | 
    
         
             
            #include <stdlib.h>    /* malloc, free, qsort */
         
     | 
| 
      
 16 
     | 
    
         
            +
            #include "error_private.h"
         
     | 
| 
       40 
17 
     | 
    
         | 
| 
       41 
18 
     | 
    
         | 
| 
       42 
19 
     | 
    
         | 
| 
         @@ -85,6 +62,10 @@ extern "C" { 
     | 
|
| 
       85 
62 
     | 
    
         
             
            /*-****************************************
         
     | 
| 
       86 
63 
     | 
    
         
             
            *  Compiler specifics
         
     | 
| 
       87 
64 
     | 
    
         
             
            ******************************************/
         
     | 
| 
      
 65 
     | 
    
         
            +
            #if defined(_MSC_VER)   /* Visual Studio */
         
     | 
| 
      
 66 
     | 
    
         
            +
            #   include <stdlib.h>  /* _byteswap_ulong */
         
     | 
| 
      
 67 
     | 
    
         
            +
            #   include <intrin.h>  /* _byteswap_* */
         
     | 
| 
      
 68 
     | 
    
         
            +
            #endif
         
     | 
| 
       88 
69 
     | 
    
         
             
            #if defined(__GNUC__)
         
     | 
| 
       89 
70 
     | 
    
         
             
            #  define MEM_STATIC static __attribute__((unused))
         
     | 
| 
       90 
71 
     | 
    
         
             
            #elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
         
     | 
| 
         @@ -138,7 +119,7 @@ extern "C" { 
     | 
|
| 
       138 
119 
     | 
    
         
             
            #ifndef MEM_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
         
     | 
| 
       139 
120 
     | 
    
         
             
            #  if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) )
         
     | 
| 
       140 
121 
     | 
    
         
             
            #    define MEM_FORCE_MEMORY_ACCESS 2
         
     | 
| 
       141 
     | 
    
         
            -
            #  elif defined(__INTEL_COMPILER) || \
         
     | 
| 
      
 122 
     | 
    
         
            +
            #  elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \
         
     | 
| 
       142 
123 
     | 
    
         
             
              (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) ))
         
     | 
| 
       143 
124 
     | 
    
         
             
            #    define MEM_FORCE_MEMORY_ACCESS 1
         
     | 
| 
       144 
125 
     | 
    
         
             
            #  endif
         
     | 
| 
         @@ -160,11 +141,8 @@ Only use if no other choice to achieve best performance on target platform */ 
     | 
|
| 
       160 
141 
     | 
    
         
             
            MEM_STATIC U16 MEM_read16(const void* memPtr) { return *(const U16*) memPtr; }
         
     | 
| 
       161 
142 
     | 
    
         
             
            MEM_STATIC U32 MEM_read32(const void* memPtr) { return *(const U32*) memPtr; }
         
     | 
| 
       162 
143 
     | 
    
         
             
            MEM_STATIC U64 MEM_read64(const void* memPtr) { return *(const U64*) memPtr; }
         
     | 
| 
       163 
     | 
    
         
            -
            MEM_STATIC U64 MEM_readST(const void* memPtr) { return *(const size_t*) memPtr; }
         
     | 
| 
       164 
144 
     | 
    
         | 
| 
       165 
145 
     | 
    
         
             
            MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(U16*)memPtr = value; }
         
     | 
| 
       166 
     | 
    
         
            -
            MEM_STATIC void MEM_write32(void* memPtr, U32 value) { *(U32*)memPtr = value; }
         
     | 
| 
       167 
     | 
    
         
            -
            MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = value; }
         
     | 
| 
       168 
146 
     | 
    
         | 
| 
       169 
147 
     | 
    
         
             
            #elif defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==1)
         
     | 
| 
       170 
148 
     | 
    
         | 
| 
         @@ -175,11 +153,8 @@ typedef union { U16 u16; U32 u32; U64 u64; size_t st; } __attribute__((packed)) 
     | 
|
| 
       175 
153 
     | 
    
         
             
            MEM_STATIC U16 MEM_read16(const void* ptr) { return ((const unalign*)ptr)->u16; }
         
     | 
| 
       176 
154 
     | 
    
         
             
            MEM_STATIC U32 MEM_read32(const void* ptr) { return ((const unalign*)ptr)->u32; }
         
     | 
| 
       177 
155 
     | 
    
         
             
            MEM_STATIC U64 MEM_read64(const void* ptr) { return ((const unalign*)ptr)->u64; }
         
     | 
| 
       178 
     | 
    
         
            -
            MEM_STATIC U64 MEM_readST(const void* ptr) { return ((const unalign*)ptr)->st; }
         
     | 
| 
       179 
156 
     | 
    
         | 
| 
       180 
157 
     | 
    
         
             
            MEM_STATIC void MEM_write16(void* memPtr, U16 value) { ((unalign*)memPtr)->u16 = value; }
         
     | 
| 
       181 
     | 
    
         
            -
            MEM_STATIC void MEM_write32(void* memPtr, U32 value) { ((unalign*)memPtr)->u32 = value; }
         
     | 
| 
       182 
     | 
    
         
            -
            MEM_STATIC void MEM_write64(void* memPtr, U64 value) { ((unalign*)memPtr)->u64 = value; }
         
     | 
| 
       183 
158 
     | 
    
         | 
| 
       184 
159 
     | 
    
         
             
            #else
         
     | 
| 
       185 
160 
     | 
    
         | 
| 
         @@ -201,25 +176,11 @@ MEM_STATIC U64 MEM_read64(const void* memPtr) 
     | 
|
| 
       201 
176 
     | 
    
         
             
                U64 val; memcpy(&val, memPtr, sizeof(val)); return val;
         
     | 
| 
       202 
177 
     | 
    
         
             
            }
         
     | 
| 
       203 
178 
     | 
    
         | 
| 
       204 
     | 
    
         
            -
            MEM_STATIC size_t MEM_readST(const void* memPtr)
         
     | 
| 
       205 
     | 
    
         
            -
            {
         
     | 
| 
       206 
     | 
    
         
            -
                size_t val; memcpy(&val, memPtr, sizeof(val)); return val;
         
     | 
| 
       207 
     | 
    
         
            -
            }
         
     | 
| 
       208 
     | 
    
         
            -
             
     | 
| 
       209 
179 
     | 
    
         
             
            MEM_STATIC void MEM_write16(void* memPtr, U16 value)
         
     | 
| 
       210 
180 
     | 
    
         
             
            {
         
     | 
| 
       211 
181 
     | 
    
         
             
                memcpy(memPtr, &value, sizeof(value));
         
     | 
| 
       212 
182 
     | 
    
         
             
            }
         
     | 
| 
       213 
183 
     | 
    
         | 
| 
       214 
     | 
    
         
            -
            MEM_STATIC void MEM_write32(void* memPtr, U32 value)
         
     | 
| 
       215 
     | 
    
         
            -
            {
         
     | 
| 
       216 
     | 
    
         
            -
                memcpy(memPtr, &value, sizeof(value));
         
     | 
| 
       217 
     | 
    
         
            -
            }
         
     | 
| 
       218 
     | 
    
         
            -
             
     | 
| 
       219 
     | 
    
         
            -
            MEM_STATIC void MEM_write64(void* memPtr, U64 value)
         
     | 
| 
       220 
     | 
    
         
            -
            {
         
     | 
| 
       221 
     | 
    
         
            -
                memcpy(memPtr, &value, sizeof(value));
         
     | 
| 
       222 
     | 
    
         
            -
            }
         
     | 
| 
       223 
184 
     | 
    
         | 
| 
       224 
185 
     | 
    
         
             
            #endif /* MEM_FORCE_MEMORY_ACCESS */
         
     | 
| 
       225 
186 
     | 
    
         | 
| 
         @@ -255,13 +216,6 @@ MEM_STATIC U64 MEM_swap64(U64 in) 
     | 
|
| 
       255 
216 
     | 
    
         
             
            #endif
         
     | 
| 
       256 
217 
     | 
    
         
             
            }
         
     | 
| 
       257 
218 
     | 
    
         | 
| 
       258 
     | 
    
         
            -
            MEM_STATIC size_t MEM_swapST(size_t in)
         
     | 
| 
       259 
     | 
    
         
            -
            {
         
     | 
| 
       260 
     | 
    
         
            -
                if (MEM_32bits())
         
     | 
| 
       261 
     | 
    
         
            -
                    return (size_t)MEM_swap32((U32)in);
         
     | 
| 
       262 
     | 
    
         
            -
                else
         
     | 
| 
       263 
     | 
    
         
            -
                    return (size_t)MEM_swap64((U64)in);
         
     | 
| 
       264 
     | 
    
         
            -
            }
         
     | 
| 
       265 
219 
     | 
    
         | 
| 
       266 
220 
     | 
    
         
             
            /*=== Little endian r/w ===*/
         
     | 
| 
       267 
221 
     | 
    
         | 
| 
         @@ -294,13 +248,6 @@ MEM_STATIC U32 MEM_readLE32(const void* memPtr) 
     | 
|
| 
       294 
248 
     | 
    
         
             
                    return MEM_swap32(MEM_read32(memPtr));
         
     | 
| 
       295 
249 
     | 
    
         
             
            }
         
     | 
| 
       296 
250 
     | 
    
         | 
| 
       297 
     | 
    
         
            -
            MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32)
         
     | 
| 
       298 
     | 
    
         
            -
            {
         
     | 
| 
       299 
     | 
    
         
            -
                if (MEM_isLittleEndian())
         
     | 
| 
       300 
     | 
    
         
            -
                    MEM_write32(memPtr, val32);
         
     | 
| 
       301 
     | 
    
         
            -
                else
         
     | 
| 
       302 
     | 
    
         
            -
                    MEM_write32(memPtr, MEM_swap32(val32));
         
     | 
| 
       303 
     | 
    
         
            -
            }
         
     | 
| 
       304 
251 
     | 
    
         | 
| 
       305 
252 
     | 
    
         
             
            MEM_STATIC U64 MEM_readLE64(const void* memPtr)
         
     | 
| 
       306 
253 
     | 
    
         
             
            {
         
     | 
| 
         @@ -310,13 +257,6 @@ MEM_STATIC U64 MEM_readLE64(const void* memPtr) 
     | 
|
| 
       310 
257 
     | 
    
         
             
                    return MEM_swap64(MEM_read64(memPtr));
         
     | 
| 
       311 
258 
     | 
    
         
             
            }
         
     | 
| 
       312 
259 
     | 
    
         | 
| 
       313 
     | 
    
         
            -
            MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64)
         
     | 
| 
       314 
     | 
    
         
            -
            {
         
     | 
| 
       315 
     | 
    
         
            -
                if (MEM_isLittleEndian())
         
     | 
| 
       316 
     | 
    
         
            -
                    MEM_write64(memPtr, val64);
         
     | 
| 
       317 
     | 
    
         
            -
                else
         
     | 
| 
       318 
     | 
    
         
            -
                    MEM_write64(memPtr, MEM_swap64(val64));
         
     | 
| 
       319 
     | 
    
         
            -
            }
         
     | 
| 
       320 
260 
     | 
    
         | 
| 
       321 
261 
     | 
    
         
             
            MEM_STATIC size_t MEM_readLEST(const void* memPtr)
         
     | 
| 
       322 
262 
     | 
    
         
             
            {
         
     | 
| 
         @@ -326,156 +266,14 @@ MEM_STATIC size_t MEM_readLEST(const void* memPtr) 
     | 
|
| 
       326 
266 
     | 
    
         
             
                    return (size_t)MEM_readLE64(memPtr);
         
     | 
| 
       327 
267 
     | 
    
         
             
            }
         
     | 
| 
       328 
268 
     | 
    
         | 
| 
       329 
     | 
    
         
            -
            MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val)
         
     | 
| 
       330 
     | 
    
         
            -
            {
         
     | 
| 
       331 
     | 
    
         
            -
                if (MEM_32bits())
         
     | 
| 
       332 
     | 
    
         
            -
                    MEM_writeLE32(memPtr, (U32)val);
         
     | 
| 
       333 
     | 
    
         
            -
                else
         
     | 
| 
       334 
     | 
    
         
            -
                    MEM_writeLE64(memPtr, (U64)val);
         
     | 
| 
       335 
     | 
    
         
            -
            }
         
     | 
| 
       336 
     | 
    
         
            -
             
     | 
| 
       337 
     | 
    
         
            -
            /*=== Big endian r/w ===*/
         
     | 
| 
       338 
     | 
    
         
            -
             
     | 
| 
       339 
     | 
    
         
            -
            MEM_STATIC U32 MEM_readBE32(const void* memPtr)
         
     | 
| 
       340 
     | 
    
         
            -
            {
         
     | 
| 
       341 
     | 
    
         
            -
                if (MEM_isLittleEndian())
         
     | 
| 
       342 
     | 
    
         
            -
                    return MEM_swap32(MEM_read32(memPtr));
         
     | 
| 
       343 
     | 
    
         
            -
                else
         
     | 
| 
       344 
     | 
    
         
            -
                    return MEM_read32(memPtr);
         
     | 
| 
       345 
     | 
    
         
            -
            }
         
     | 
| 
       346 
     | 
    
         
            -
             
     | 
| 
       347 
     | 
    
         
            -
            MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32)
         
     | 
| 
       348 
     | 
    
         
            -
            {
         
     | 
| 
       349 
     | 
    
         
            -
                if (MEM_isLittleEndian())
         
     | 
| 
       350 
     | 
    
         
            -
                    MEM_write32(memPtr, MEM_swap32(val32));
         
     | 
| 
       351 
     | 
    
         
            -
                else
         
     | 
| 
       352 
     | 
    
         
            -
                    MEM_write32(memPtr, val32);
         
     | 
| 
       353 
     | 
    
         
            -
            }
         
     | 
| 
       354 
     | 
    
         
            -
             
     | 
| 
       355 
     | 
    
         
            -
            MEM_STATIC U64 MEM_readBE64(const void* memPtr)
         
     | 
| 
       356 
     | 
    
         
            -
            {
         
     | 
| 
       357 
     | 
    
         
            -
                if (MEM_isLittleEndian())
         
     | 
| 
       358 
     | 
    
         
            -
                    return MEM_swap64(MEM_read64(memPtr));
         
     | 
| 
       359 
     | 
    
         
            -
                else
         
     | 
| 
       360 
     | 
    
         
            -
                    return MEM_read64(memPtr);
         
     | 
| 
       361 
     | 
    
         
            -
            }
         
     | 
| 
       362 
     | 
    
         
            -
             
     | 
| 
       363 
     | 
    
         
            -
            MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64)
         
     | 
| 
       364 
     | 
    
         
            -
            {
         
     | 
| 
       365 
     | 
    
         
            -
                if (MEM_isLittleEndian())
         
     | 
| 
       366 
     | 
    
         
            -
                    MEM_write64(memPtr, MEM_swap64(val64));
         
     | 
| 
       367 
     | 
    
         
            -
                else
         
     | 
| 
       368 
     | 
    
         
            -
                    MEM_write64(memPtr, val64);
         
     | 
| 
       369 
     | 
    
         
            -
            }
         
     | 
| 
       370 
     | 
    
         
            -
             
     | 
| 
       371 
     | 
    
         
            -
            MEM_STATIC size_t MEM_readBEST(const void* memPtr)
         
     | 
| 
       372 
     | 
    
         
            -
            {
         
     | 
| 
       373 
     | 
    
         
            -
                if (MEM_32bits())
         
     | 
| 
       374 
     | 
    
         
            -
                    return (size_t)MEM_readBE32(memPtr);
         
     | 
| 
       375 
     | 
    
         
            -
                else
         
     | 
| 
       376 
     | 
    
         
            -
                    return (size_t)MEM_readBE64(memPtr);
         
     | 
| 
       377 
     | 
    
         
            -
            }
         
     | 
| 
       378 
     | 
    
         
            -
             
     | 
| 
       379 
     | 
    
         
            -
            MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val)
         
     | 
| 
       380 
     | 
    
         
            -
            {
         
     | 
| 
       381 
     | 
    
         
            -
                if (MEM_32bits())
         
     | 
| 
       382 
     | 
    
         
            -
                    MEM_writeBE32(memPtr, (U32)val);
         
     | 
| 
       383 
     | 
    
         
            -
                else
         
     | 
| 
       384 
     | 
    
         
            -
                    MEM_writeBE64(memPtr, (U64)val);
         
     | 
| 
       385 
     | 
    
         
            -
            }
         
     | 
| 
       386 
269 
     | 
    
         | 
| 
       387 
270 
     | 
    
         | 
| 
       388 
     | 
    
         
            -
            /* function safe only for comparisons */
         
     | 
| 
       389 
     | 
    
         
            -
            MEM_STATIC U32 MEM_readMINMATCH(const void* memPtr, U32 length)
         
     | 
| 
       390 
     | 
    
         
            -
            {
         
     | 
| 
       391 
     | 
    
         
            -
                switch (length)
         
     | 
| 
       392 
     | 
    
         
            -
                {
         
     | 
| 
       393 
     | 
    
         
            -
                default :
         
     | 
| 
       394 
     | 
    
         
            -
                case 4 : return MEM_read32(memPtr);
         
     | 
| 
       395 
     | 
    
         
            -
                case 3 : if (MEM_isLittleEndian())
         
     | 
| 
       396 
     | 
    
         
            -
                            return MEM_read32(memPtr)<<8;
         
     | 
| 
       397 
     | 
    
         
            -
                         else
         
     | 
| 
       398 
     | 
    
         
            -
                            return MEM_read32(memPtr)>>8;
         
     | 
| 
       399 
     | 
    
         
            -
                }
         
     | 
| 
       400 
     | 
    
         
            -
            }
         
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
271 
     | 
    
         
             
            #if defined (__cplusplus)
         
     | 
| 
       403 
272 
     | 
    
         
             
            }
         
     | 
| 
       404 
273 
     | 
    
         
             
            #endif
         
     | 
| 
       405 
274 
     | 
    
         | 
| 
       406 
275 
     | 
    
         
             
            #endif /* MEM_H_MODULE */
         
     | 
| 
       407 
276 
     | 
    
         | 
| 
       408 
     | 
    
         
            -
            /* ******************************************************************
         
     | 
| 
       409 
     | 
    
         
            -
               Error codes list
         
     | 
| 
       410 
     | 
    
         
            -
               Copyright (C) 2016, Yann Collet
         
     | 
| 
       411 
     | 
    
         
            -
             
     | 
| 
       412 
     | 
    
         
            -
               BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
         
     | 
| 
       413 
     | 
    
         
            -
             
     | 
| 
       414 
     | 
    
         
            -
               Redistribution and use in source and binary forms, with or without
         
     | 
| 
       415 
     | 
    
         
            -
               modification, are permitted provided that the following conditions are
         
     | 
| 
       416 
     | 
    
         
            -
               met:
         
     | 
| 
       417 
     | 
    
         
            -
             
     | 
| 
       418 
     | 
    
         
            -
                   * Redistributions of source code must retain the above copyright
         
     | 
| 
       419 
     | 
    
         
            -
               notice, this list of conditions and the following disclaimer.
         
     | 
| 
       420 
     | 
    
         
            -
                   * Redistributions in binary form must reproduce the above
         
     | 
| 
       421 
     | 
    
         
            -
               copyright notice, this list of conditions and the following disclaimer
         
     | 
| 
       422 
     | 
    
         
            -
               in the documentation and/or other materials provided with the
         
     | 
| 
       423 
     | 
    
         
            -
               distribution.
         
     | 
| 
       424 
     | 
    
         
            -
             
     | 
| 
       425 
     | 
    
         
            -
               THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
         
     | 
| 
       426 
     | 
    
         
            -
               "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         
     | 
| 
       427 
     | 
    
         
            -
               LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
         
     | 
| 
       428 
     | 
    
         
            -
               A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         
     | 
| 
       429 
     | 
    
         
            -
               OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         
     | 
| 
       430 
     | 
    
         
            -
               SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
         
     | 
| 
       431 
     | 
    
         
            -
               LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
         
     | 
| 
       432 
     | 
    
         
            -
               DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
         
     | 
| 
       433 
     | 
    
         
            -
               THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         
     | 
| 
       434 
     | 
    
         
            -
               (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         
     | 
| 
       435 
     | 
    
         
            -
               OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         
     | 
| 
       436 
     | 
    
         
            -
             
     | 
| 
       437 
     | 
    
         
            -
               You can contact the author at :
         
     | 
| 
       438 
     | 
    
         
            -
               - Homepage : http://www.zstd.net
         
     | 
| 
       439 
     | 
    
         
            -
            ****************************************************************** */
         
     | 
| 
       440 
     | 
    
         
            -
            #ifndef ERROR_PUBLIC_H_MODULE
         
     | 
| 
       441 
     | 
    
         
            -
            #define ERROR_PUBLIC_H_MODULE
         
     | 
| 
       442 
     | 
    
         
            -
             
     | 
| 
       443 
     | 
    
         
            -
            #if defined (__cplusplus)
         
     | 
| 
       444 
     | 
    
         
            -
            extern "C" {
         
     | 
| 
       445 
     | 
    
         
            -
            #endif
         
     | 
| 
       446 
     | 
    
         
            -
             
     | 
| 
       447 
     | 
    
         
            -
             
     | 
| 
       448 
     | 
    
         
            -
            /* ****************************************
         
     | 
| 
       449 
     | 
    
         
            -
            *  error codes list
         
     | 
| 
       450 
     | 
    
         
            -
            ******************************************/
         
     | 
| 
       451 
     | 
    
         
            -
            typedef enum {
         
     | 
| 
       452 
     | 
    
         
            -
              ZSTDv06_error_no_error,
         
     | 
| 
       453 
     | 
    
         
            -
              ZSTDv06_error_GENERIC,
         
     | 
| 
       454 
     | 
    
         
            -
              ZSTDv06_error_prefix_unknown,
         
     | 
| 
       455 
     | 
    
         
            -
              ZSTDv06_error_frameParameter_unsupported,
         
     | 
| 
       456 
     | 
    
         
            -
              ZSTDv06_error_frameParameter_unsupportedBy32bits,
         
     | 
| 
       457 
     | 
    
         
            -
              ZSTDv06_error_compressionParameter_unsupported,
         
     | 
| 
       458 
     | 
    
         
            -
              ZSTDv06_error_init_missing,
         
     | 
| 
       459 
     | 
    
         
            -
              ZSTDv06_error_memory_allocation,
         
     | 
| 
       460 
     | 
    
         
            -
              ZSTDv06_error_stage_wrong,
         
     | 
| 
       461 
     | 
    
         
            -
              ZSTDv06_error_dstSize_tooSmall,
         
     | 
| 
       462 
     | 
    
         
            -
              ZSTDv06_error_srcSize_wrong,
         
     | 
| 
       463 
     | 
    
         
            -
              ZSTDv06_error_corruption_detected,
         
     | 
| 
       464 
     | 
    
         
            -
              ZSTDv06_error_tableLog_tooLarge,
         
     | 
| 
       465 
     | 
    
         
            -
              ZSTDv06_error_maxSymbolValue_tooLarge,
         
     | 
| 
       466 
     | 
    
         
            -
              ZSTDv06_error_maxSymbolValue_tooSmall,
         
     | 
| 
       467 
     | 
    
         
            -
              ZSTDv06_error_dictionary_corrupted,
         
     | 
| 
       468 
     | 
    
         
            -
              ZSTDv06_error_maxCode
         
     | 
| 
       469 
     | 
    
         
            -
            } ZSTDv06_ErrorCode;
         
     | 
| 
       470 
     | 
    
         
            -
             
     | 
| 
       471 
     | 
    
         
            -
            /* note : compare with size_t function results using ZSTDv06_getError() */
         
     | 
| 
       472 
     | 
    
         
            -
             
     | 
| 
       473 
     | 
    
         
            -
             
     | 
| 
       474 
     | 
    
         
            -
            #if defined (__cplusplus)
         
     | 
| 
       475 
     | 
    
         
            -
            }
         
     | 
| 
       476 
     | 
    
         
            -
            #endif
         
     | 
| 
       477 
     | 
    
         
            -
             
     | 
| 
       478 
     | 
    
         
            -
            #endif /* ERROR_PUBLIC_H_MODULE */
         
     | 
| 
       479 
277 
     | 
    
         
             
            /*
         
     | 
| 
       480 
278 
     | 
    
         
             
                zstd - standard compression library
         
     | 
| 
       481 
279 
     | 
    
         
             
                Header File for static linking only
         
     | 
| 
         @@ -528,7 +326,7 @@ extern "C" { 
     | 
|
| 
       528 
326 
     | 
    
         
             
            *   It avoids reloading the dictionary each time.
         
     | 
| 
       529 
327 
     | 
    
         
             
            *   `preparedDCtx` must have been properly initialized using ZSTDv06_decompressBegin_usingDict().
         
     | 
| 
       530 
328 
     | 
    
         
             
            *   Requires 2 contexts : 1 for reference (preparedDCtx), which will not be modified, and 1 to run the decompression operation (dctx) */
         
     | 
| 
       531 
     | 
    
         
            -
             
     | 
| 
      
 329 
     | 
    
         
            +
            ZSTDLIBv06_API size_t ZSTDv06_decompress_usingPreparedDCtx(
         
     | 
| 
       532 
330 
     | 
    
         
             
                                                       ZSTDv06_DCtx* dctx, const ZSTDv06_DCtx* preparedDCtx,
         
     | 
| 
       533 
331 
     | 
    
         
             
                                                       void* dst, size_t dstCapacity,
         
     | 
| 
       534 
332 
     | 
    
         
             
                                                 const void* src, size_t srcSize);
         
     | 
| 
         @@ -539,7 +337,7 @@ ZSTDLIB_API size_t ZSTDv06_decompress_usingPreparedDCtx( 
     | 
|
| 
       539 
337 
     | 
    
         
             
            static const size_t ZSTDv06_frameHeaderSize_min = 5;
         
     | 
| 
       540 
338 
     | 
    
         
             
            static const size_t ZSTDv06_frameHeaderSize_max = ZSTDv06_FRAMEHEADERSIZE_MAX;
         
     | 
| 
       541 
339 
     | 
    
         | 
| 
       542 
     | 
    
         
            -
             
     | 
| 
      
 340 
     | 
    
         
            +
            ZSTDLIBv06_API size_t ZSTDv06_decompressBegin(ZSTDv06_DCtx* dctx);
         
     | 
| 
       543 
341 
     | 
    
         | 
| 
       544 
342 
     | 
    
         
             
            /*
         
     | 
| 
       545 
343 
     | 
    
         
             
              Streaming decompression, direct mode (bufferless)
         
     | 
| 
         @@ -598,17 +396,8 @@ ZSTDLIB_API size_t ZSTDv06_decompressBegin(ZSTDv06_DCtx* dctx); 
     | 
|
| 
       598 
396 
     | 
    
         
             
            */
         
     | 
| 
       599 
397 
     | 
    
         | 
| 
       600 
398 
     | 
    
         
             
            #define ZSTDv06_BLOCKSIZE_MAX (128 * 1024)   /* define, for static allocation */
         
     | 
| 
       601 
     | 
    
         
            -
             
     | 
| 
       602 
     | 
    
         
            -
             
     | 
| 
      
 399 
     | 
    
         
            +
            ZSTDLIBv06_API size_t ZSTDv06_decompressBlock(ZSTDv06_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
         
     | 
| 
       603 
400 
     | 
    
         | 
| 
       604 
     | 
    
         
            -
            /*-*************************************
         
     | 
| 
       605 
     | 
    
         
            -
            *  Error management
         
     | 
| 
       606 
     | 
    
         
            -
            ***************************************/
         
     | 
| 
       607 
     | 
    
         
            -
            /*! ZSTDv06_getErrorCode() :
         
     | 
| 
       608 
     | 
    
         
            -
                convert a `size_t` function result into a `ZSTDv06_ErrorCode` enum type,
         
     | 
| 
       609 
     | 
    
         
            -
                which can be used to compare directly with enum list published into "error_public.h" */
         
     | 
| 
       610 
     | 
    
         
            -
            ZSTDLIB_API ZSTDv06_ErrorCode ZSTDv06_getErrorCode(size_t functionResult);
         
     | 
| 
       611 
     | 
    
         
            -
            ZSTDLIB_API const char* ZSTDv06_getErrorString(ZSTDv06_ErrorCode code);
         
     | 
| 
       612 
401 
     | 
    
         | 
| 
       613 
402 
     | 
    
         | 
| 
       614 
403 
     | 
    
         
             
            #if defined (__cplusplus)
         
     | 
| 
         @@ -616,122 +405,6 @@ ZSTDLIB_API const char* ZSTDv06_getErrorString(ZSTDv06_ErrorCode code); 
     | 
|
| 
       616 
405 
     | 
    
         
             
            #endif
         
     | 
| 
       617 
406 
     | 
    
         | 
| 
       618 
407 
     | 
    
         
             
            #endif  /* ZSTDv06_STATIC_H */
         
     | 
| 
       619 
     | 
    
         
            -
            /* ******************************************************************
         
     | 
| 
       620 
     | 
    
         
            -
               Error codes and messages
         
     | 
| 
       621 
     | 
    
         
            -
               Copyright (C) 2013-2016, Yann Collet
         
     | 
| 
       622 
     | 
    
         
            -
             
     | 
| 
       623 
     | 
    
         
            -
               BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
         
     | 
| 
       624 
     | 
    
         
            -
             
     | 
| 
       625 
     | 
    
         
            -
               Redistribution and use in source and binary forms, with or without
         
     | 
| 
       626 
     | 
    
         
            -
               modification, are permitted provided that the following conditions are
         
     | 
| 
       627 
     | 
    
         
            -
               met:
         
     | 
| 
       628 
     | 
    
         
            -
             
     | 
| 
       629 
     | 
    
         
            -
                   * Redistributions of source code must retain the above copyright
         
     | 
| 
       630 
     | 
    
         
            -
               notice, this list of conditions and the following disclaimer.
         
     | 
| 
       631 
     | 
    
         
            -
                   * Redistributions in binary form must reproduce the above
         
     | 
| 
       632 
     | 
    
         
            -
               copyright notice, this list of conditions and the following disclaimer
         
     | 
| 
       633 
     | 
    
         
            -
               in the documentation and/or other materials provided with the
         
     | 
| 
       634 
     | 
    
         
            -
               distribution.
         
     | 
| 
       635 
     | 
    
         
            -
             
     | 
| 
       636 
     | 
    
         
            -
               THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
         
     | 
| 
       637 
     | 
    
         
            -
               "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         
     | 
| 
       638 
     | 
    
         
            -
               LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
         
     | 
| 
       639 
     | 
    
         
            -
               A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         
     | 
| 
       640 
     | 
    
         
            -
               OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         
     | 
| 
       641 
     | 
    
         
            -
               SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
         
     | 
| 
       642 
     | 
    
         
            -
               LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
         
     | 
| 
       643 
     | 
    
         
            -
               DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
         
     | 
| 
       644 
     | 
    
         
            -
               THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         
     | 
| 
       645 
     | 
    
         
            -
               (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
         
     | 
| 
       646 
     | 
    
         
            -
               OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         
     | 
| 
       647 
     | 
    
         
            -
             
     | 
| 
       648 
     | 
    
         
            -
               You can contact the author at :
         
     | 
| 
       649 
     | 
    
         
            -
               - Homepage : http://www.zstd.net
         
     | 
| 
       650 
     | 
    
         
            -
            ****************************************************************** */
         
     | 
| 
       651 
     | 
    
         
            -
            /* Note : this module is expected to remain private, do not expose it */
         
     | 
| 
       652 
     | 
    
         
            -
             
     | 
| 
       653 
     | 
    
         
            -
            #ifndef ERROR_H_MODULE
         
     | 
| 
       654 
     | 
    
         
            -
            #define ERROR_H_MODULE
         
     | 
| 
       655 
     | 
    
         
            -
             
     | 
| 
       656 
     | 
    
         
            -
            #if defined (__cplusplus)
         
     | 
| 
       657 
     | 
    
         
            -
            extern "C" {
         
     | 
| 
       658 
     | 
    
         
            -
            #endif
         
     | 
| 
       659 
     | 
    
         
            -
             
     | 
| 
       660 
     | 
    
         
            -
             
     | 
| 
       661 
     | 
    
         
            -
            /* ****************************************
         
     | 
| 
       662 
     | 
    
         
            -
            *  Compiler-specific
         
     | 
| 
       663 
     | 
    
         
            -
            ******************************************/
         
     | 
| 
       664 
     | 
    
         
            -
            #if defined(__GNUC__)
         
     | 
| 
       665 
     | 
    
         
            -
            #  define ERR_STATIC static __attribute__((unused))
         
     | 
| 
       666 
     | 
    
         
            -
            #elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
         
     | 
| 
       667 
     | 
    
         
            -
            #  define ERR_STATIC static inline
         
     | 
| 
       668 
     | 
    
         
            -
            #elif defined(_MSC_VER)
         
     | 
| 
       669 
     | 
    
         
            -
            #  define ERR_STATIC static __inline
         
     | 
| 
       670 
     | 
    
         
            -
            #else
         
     | 
| 
       671 
     | 
    
         
            -
            #  define ERR_STATIC static  /* this version may generate warnings for unused static functions; disable the relevant warning */
         
     | 
| 
       672 
     | 
    
         
            -
            #endif
         
     | 
| 
       673 
     | 
    
         
            -
             
     | 
| 
       674 
     | 
    
         
            -
             
     | 
| 
       675 
     | 
    
         
            -
            /*-****************************************
         
     | 
| 
       676 
     | 
    
         
            -
            *  Customization (error_public.h)
         
     | 
| 
       677 
     | 
    
         
            -
            ******************************************/
         
     | 
| 
       678 
     | 
    
         
            -
            typedef ZSTDv06_ErrorCode ERR_enum;
         
     | 
| 
       679 
     | 
    
         
            -
            #define PREFIX(name) ZSTDv06_error_##name
         
     | 
| 
       680 
     | 
    
         
            -
             
     | 
| 
       681 
     | 
    
         
            -
             
     | 
| 
       682 
     | 
    
         
            -
            /*-****************************************
         
     | 
| 
       683 
     | 
    
         
            -
            *  Error codes handling
         
     | 
| 
       684 
     | 
    
         
            -
            ******************************************/
         
     | 
| 
       685 
     | 
    
         
            -
            #ifdef ERROR
         
     | 
| 
       686 
     | 
    
         
            -
            #  undef ERROR   /* reported already defined on VS 2015 (Rich Geldreich) */
         
     | 
| 
       687 
     | 
    
         
            -
            #endif
         
     | 
| 
       688 
     | 
    
         
            -
            #define ERROR(name) ((size_t)-PREFIX(name))
         
     | 
| 
       689 
     | 
    
         
            -
             
     | 
| 
       690 
     | 
    
         
            -
            ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); }
         
     | 
| 
       691 
     | 
    
         
            -
             
     | 
| 
       692 
     | 
    
         
            -
            ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) { if (!ERR_isError(code)) return (ERR_enum)0; return (ERR_enum) (0-code); }
         
     | 
| 
       693 
     | 
    
         
            -
             
     | 
| 
       694 
     | 
    
         
            -
             
     | 
| 
       695 
     | 
    
         
            -
            /*-****************************************
         
     | 
| 
       696 
     | 
    
         
            -
            *  Error Strings
         
     | 
| 
       697 
     | 
    
         
            -
            ******************************************/
         
     | 
| 
       698 
     | 
    
         
            -
             
     | 
| 
       699 
     | 
    
         
            -
            ERR_STATIC const char* ERR_getErrorString(ERR_enum code)
         
     | 
| 
       700 
     | 
    
         
            -
            {
         
     | 
| 
       701 
     | 
    
         
            -
                static const char* notErrorCode = "Unspecified error code";
         
     | 
| 
       702 
     | 
    
         
            -
                switch( code )
         
     | 
| 
       703 
     | 
    
         
            -
                {
         
     | 
| 
       704 
     | 
    
         
            -
                case PREFIX(no_error): return "No error detected";
         
     | 
| 
       705 
     | 
    
         
            -
                case PREFIX(GENERIC):  return "Error (generic)";
         
     | 
| 
       706 
     | 
    
         
            -
                case PREFIX(prefix_unknown): return "Unknown frame descriptor";
         
     | 
| 
       707 
     | 
    
         
            -
                case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter";
         
     | 
| 
       708 
     | 
    
         
            -
                case PREFIX(frameParameter_unsupportedBy32bits): return "Frame parameter unsupported in 32-bits mode";
         
     | 
| 
       709 
     | 
    
         
            -
                case PREFIX(compressionParameter_unsupported): return "Compression parameter is out of bound";
         
     | 
| 
       710 
     | 
    
         
            -
                case PREFIX(init_missing): return "Context should be init first";
         
     | 
| 
       711 
     | 
    
         
            -
                case PREFIX(memory_allocation): return "Allocation error : not enough memory";
         
     | 
| 
       712 
     | 
    
         
            -
                case PREFIX(stage_wrong): return "Operation not authorized at current processing stage";
         
     | 
| 
       713 
     | 
    
         
            -
                case PREFIX(dstSize_tooSmall): return "Destination buffer is too small";
         
     | 
| 
       714 
     | 
    
         
            -
                case PREFIX(srcSize_wrong): return "Src size incorrect";
         
     | 
| 
       715 
     | 
    
         
            -
                case PREFIX(corruption_detected): return "Corrupted block detected";
         
     | 
| 
       716 
     | 
    
         
            -
                case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported";
         
     | 
| 
       717 
     | 
    
         
            -
                case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large";
         
     | 
| 
       718 
     | 
    
         
            -
                case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small";
         
     | 
| 
       719 
     | 
    
         
            -
                case PREFIX(dictionary_corrupted): return "Dictionary is corrupted";
         
     | 
| 
       720 
     | 
    
         
            -
                case PREFIX(maxCode):
         
     | 
| 
       721 
     | 
    
         
            -
                default: return notErrorCode;
         
     | 
| 
       722 
     | 
    
         
            -
                }
         
     | 
| 
       723 
     | 
    
         
            -
            }
         
     | 
| 
       724 
     | 
    
         
            -
             
     | 
| 
       725 
     | 
    
         
            -
            ERR_STATIC const char* ERR_getErrorName(size_t code)
         
     | 
| 
       726 
     | 
    
         
            -
            {
         
     | 
| 
       727 
     | 
    
         
            -
                return ERR_getErrorString(ERR_getErrorCode(code));
         
     | 
| 
       728 
     | 
    
         
            -
            }
         
     | 
| 
       729 
     | 
    
         
            -
             
     | 
| 
       730 
     | 
    
         
            -
            #if defined (__cplusplus)
         
     | 
| 
       731 
     | 
    
         
            -
            }
         
     | 
| 
       732 
     | 
    
         
            -
            #endif
         
     | 
| 
       733 
     | 
    
         
            -
             
     | 
| 
       734 
     | 
    
         
            -
            #endif /* ERROR_H_MODULE */
         
     | 
| 
       735 
408 
     | 
    
         
             
            /*
         
     | 
| 
       736 
409 
     | 
    
         
             
                zstd_internal - common functions to include
         
     | 
| 
       737 
410 
     | 
    
         
             
                Header File for include
         
     | 
| 
         @@ -777,19 +450,6 @@ ERR_STATIC const char* ERR_getErrorName(size_t code) 
     | 
|
| 
       777 
450 
     | 
    
         
             
            /*-*************************************
         
     | 
| 
       778 
451 
     | 
    
         
             
            *  Common constants
         
     | 
| 
       779 
452 
     | 
    
         
             
            ***************************************/
         
     | 
| 
       780 
     | 
    
         
            -
            #define ZSTDv06_OPT_DEBUG 0     // 3 = compression stats;  5 = check encoded sequences;  9 = full logs
         
     | 
| 
       781 
     | 
    
         
            -
            #include <stdio.h>
         
     | 
| 
       782 
     | 
    
         
            -
            #if defined(ZSTDv06_OPT_DEBUG) && ZSTDv06_OPT_DEBUG>=9
         
     | 
| 
       783 
     | 
    
         
            -
                #define ZSTDv06_LOG_PARSER(...) printf(__VA_ARGS__)
         
     | 
| 
       784 
     | 
    
         
            -
                #define ZSTDv06_LOG_ENCODE(...) printf(__VA_ARGS__)
         
     | 
| 
       785 
     | 
    
         
            -
                #define ZSTDv06_LOG_BLOCK(...) printf(__VA_ARGS__)
         
     | 
| 
       786 
     | 
    
         
            -
            #else
         
     | 
| 
       787 
     | 
    
         
            -
                #define ZSTDv06_LOG_PARSER(...)
         
     | 
| 
       788 
     | 
    
         
            -
                #define ZSTDv06_LOG_ENCODE(...)
         
     | 
| 
       789 
     | 
    
         
            -
                #define ZSTDv06_LOG_BLOCK(...)
         
     | 
| 
       790 
     | 
    
         
            -
            #endif
         
     | 
| 
       791 
     | 
    
         
            -
             
     | 
| 
       792 
     | 
    
         
            -
            #define ZSTDv06_OPT_NUM    (1<<12)
         
     | 
| 
       793 
453 
     | 
    
         
             
            #define ZSTDv06_DICT_MAGIC  0xEC30A436
         
     | 
| 
       794 
454 
     | 
    
         | 
| 
       795 
455 
     | 
    
         
             
            #define ZSTDv06_REP_NUM    3
         
     | 
| 
         @@ -887,27 +547,6 @@ MEM_STATIC void ZSTDv06_wildcopy(void* dst, const void* src, size_t length) 
     | 
|
| 
       887 
547 
     | 
    
         
             
                while (op < oend);
         
     | 
| 
       888 
548 
     | 
    
         
             
            }
         
     | 
| 
       889 
549 
     | 
    
         | 
| 
       890 
     | 
    
         
            -
            MEM_STATIC unsigned ZSTDv06_highbit(U32 val)
         
     | 
| 
       891 
     | 
    
         
            -
            {
         
     | 
| 
       892 
     | 
    
         
            -
            #   if defined(_MSC_VER)   /* Visual */
         
     | 
| 
       893 
     | 
    
         
            -
                unsigned long r=0;
         
     | 
| 
       894 
     | 
    
         
            -
                _BitScanReverse(&r, val);
         
     | 
| 
       895 
     | 
    
         
            -
                return (unsigned)r;
         
     | 
| 
       896 
     | 
    
         
            -
            #   elif defined(__GNUC__) && (__GNUC__ >= 3)   /* GCC Intrinsic */
         
     | 
| 
       897 
     | 
    
         
            -
                return 31 - __builtin_clz(val);
         
     | 
| 
       898 
     | 
    
         
            -
            #   else   /* Software version */
         
     | 
| 
       899 
     | 
    
         
            -
                static const int DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 };
         
     | 
| 
       900 
     | 
    
         
            -
                U32 v = val;
         
     | 
| 
       901 
     | 
    
         
            -
                int r;
         
     | 
| 
       902 
     | 
    
         
            -
                v |= v >> 1;
         
     | 
| 
       903 
     | 
    
         
            -
                v |= v >> 2;
         
     | 
| 
       904 
     | 
    
         
            -
                v |= v >> 4;
         
     | 
| 
       905 
     | 
    
         
            -
                v |= v >> 8;
         
     | 
| 
       906 
     | 
    
         
            -
                v |= v >> 16;
         
     | 
| 
       907 
     | 
    
         
            -
                r = DeBruijnClz[(U32)(v * 0x07C4ACDDU) >> 27];
         
     | 
| 
       908 
     | 
    
         
            -
                return r;
         
     | 
| 
       909 
     | 
    
         
            -
            #   endif
         
     | 
| 
       910 
     | 
    
         
            -
            }
         
     | 
| 
       911 
550 
     | 
    
         | 
| 
       912 
551 
     | 
    
         | 
| 
       913 
552 
     | 
    
         
             
            /*-*******************************************
         
     | 
| 
         @@ -926,15 +565,7 @@ typedef struct { 
     | 
|
| 
       926 
565 
     | 
    
         
             
                U32 rep[ZSTDv06_REP_INIT];
         
     | 
| 
       927 
566 
     | 
    
         
             
            } ZSTDv06_optimal_t;
         
     | 
| 
       928 
567 
     | 
    
         | 
| 
       929 
     | 
    
         
            -
             
     | 
| 
       930 
     | 
    
         
            -
                #include ".debug/zstd_stats.h"
         
     | 
| 
       931 
     | 
    
         
            -
            #else
         
     | 
| 
       932 
     | 
    
         
            -
                typedef struct { U32  unused; } ZSTDv06_stats_t;
         
     | 
| 
       933 
     | 
    
         
            -
                MEM_STATIC void ZSTDv06_statsPrint(ZSTDv06_stats_t* stats, U32 searchLength) { (void)stats; (void)searchLength; }
         
     | 
| 
       934 
     | 
    
         
            -
                MEM_STATIC void ZSTDv06_statsInit(ZSTDv06_stats_t* stats) { (void)stats; }
         
     | 
| 
       935 
     | 
    
         
            -
                MEM_STATIC void ZSTDv06_statsResetFreqs(ZSTDv06_stats_t* stats) { (void)stats; }
         
     | 
| 
       936 
     | 
    
         
            -
                MEM_STATIC void ZSTDv06_statsUpdatePrices(ZSTDv06_stats_t* stats, size_t litLength, const BYTE* literals, size_t offset, size_t matchLength) { (void)stats; (void)litLength; (void)literals; (void)offset; (void)matchLength; }
         
     | 
| 
       937 
     | 
    
         
            -
            #endif
         
     | 
| 
      
 568 
     | 
    
         
            +
            typedef struct { U32  unused; } ZSTDv06_stats_t;
         
     | 
| 
       938 
569 
     | 
    
         | 
| 
       939 
570 
     | 
    
         
             
            typedef struct {
         
     | 
| 
       940 
571 
     | 
    
         
             
                void* buffer;
         
     | 
| 
         @@ -1251,9 +882,6 @@ MEM_STATIC unsigned BITv06_highbit32 (register U32 val) 
     | 
|
| 
       1251 
882 
     | 
    
         
             
            #   endif
         
     | 
| 
       1252 
883 
     | 
    
         
             
            }
         
     | 
| 
       1253 
884 
     | 
    
         | 
| 
       1254 
     | 
    
         
            -
            /*=====    Local Constants   =====*/
         
     | 
| 
       1255 
     | 
    
         
            -
            static const unsigned BITv06_mask[] = { 0, 1, 3, 7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF, 0x1FFFF, 0x3FFFF, 0x7FFFF, 0xFFFFF, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF,  0xFFFFFF, 0x1FFFFFF, 0x3FFFFFF };   /* up to 26 bits */
         
     | 
| 
       1256 
     | 
    
         
            -
             
     | 
| 
       1257 
885 
     | 
    
         | 
| 
       1258 
886 
     | 
    
         | 
| 
       1259 
887 
     | 
    
         
             
            /*-********************************************************
         
     | 
| 
         @@ -1299,29 +927,6 @@ MEM_STATIC size_t BITv06_initDStream(BITv06_DStream_t* bitD, const void* srcBuff 
     | 
|
| 
       1299 
927 
     | 
    
         
             
                return srcSize;
         
     | 
| 
       1300 
928 
     | 
    
         
             
            }
         
     | 
| 
       1301 
929 
     | 
    
         | 
| 
       1302 
     | 
    
         
            -
            MEM_STATIC size_t BITv06_getUpperBits(size_t bitContainer, U32 const start)
         
     | 
| 
       1303 
     | 
    
         
            -
            {
         
     | 
| 
       1304 
     | 
    
         
            -
                return bitContainer >> start;
         
     | 
| 
       1305 
     | 
    
         
            -
            }
         
     | 
| 
       1306 
     | 
    
         
            -
             
     | 
| 
       1307 
     | 
    
         
            -
            MEM_STATIC size_t BITv06_getMiddleBits(size_t bitContainer, U32 const start, U32 const nbBits)
         
     | 
| 
       1308 
     | 
    
         
            -
            {
         
     | 
| 
       1309 
     | 
    
         
            -
            #if defined(__BMI__) && defined(__GNUC__)   /* experimental */
         
     | 
| 
       1310 
     | 
    
         
            -
            #  if defined(__x86_64__)
         
     | 
| 
       1311 
     | 
    
         
            -
                if (sizeof(bitContainer)==8)
         
     | 
| 
       1312 
     | 
    
         
            -
                    return _bextr_u64(bitContainer, start, nbBits);
         
     | 
| 
       1313 
     | 
    
         
            -
                else
         
     | 
| 
       1314 
     | 
    
         
            -
            #  endif
         
     | 
| 
       1315 
     | 
    
         
            -
                    return _bextr_u32(bitContainer, start, nbBits);
         
     | 
| 
       1316 
     | 
    
         
            -
            #else
         
     | 
| 
       1317 
     | 
    
         
            -
                return (bitContainer >> start) & BITv06_mask[nbBits];
         
     | 
| 
       1318 
     | 
    
         
            -
            #endif
         
     | 
| 
       1319 
     | 
    
         
            -
            }
         
     | 
| 
       1320 
     | 
    
         
            -
             
     | 
| 
       1321 
     | 
    
         
            -
            MEM_STATIC size_t BITv06_getLowerBits(size_t bitContainer, U32 const nbBits)
         
     | 
| 
       1322 
     | 
    
         
            -
            {
         
     | 
| 
       1323 
     | 
    
         
            -
                return bitContainer & BITv06_mask[nbBits];
         
     | 
| 
       1324 
     | 
    
         
            -
            }
         
     | 
| 
       1325 
930 
     | 
    
         | 
| 
       1326 
931 
     | 
    
         
             
            /*! BITv06_lookBits() :
         
     | 
| 
       1327 
932 
     | 
    
         
             
             *  Provides next n bits from local register.
         
     | 
| 
         @@ -1332,12 +937,8 @@ MEM_STATIC size_t BITv06_getLowerBits(size_t bitContainer, U32 const nbBits) 
     | 
|
| 
       1332 
937 
     | 
    
         
             
             */
         
     | 
| 
       1333 
938 
     | 
    
         
             
             MEM_STATIC size_t BITv06_lookBits(const BITv06_DStream_t* bitD, U32 nbBits)
         
     | 
| 
       1334 
939 
     | 
    
         
             
            {
         
     | 
| 
       1335 
     | 
    
         
            -
            #if defined(__BMI__) && defined(__GNUC__)   /* experimental; fails if bitD->bitsConsumed + nbBits > sizeof(bitD->bitContainer)*8 */
         
     | 
| 
       1336 
     | 
    
         
            -
                return BITv06_getMiddleBits(bitD->bitContainer, (sizeof(bitD->bitContainer)*8) - bitD->bitsConsumed - nbBits, nbBits);
         
     | 
| 
       1337 
     | 
    
         
            -
            #else
         
     | 
| 
       1338 
940 
     | 
    
         
             
                U32 const bitMask = sizeof(bitD->bitContainer)*8 - 1;
         
     | 
| 
       1339 
941 
     | 
    
         
             
                return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask);
         
     | 
| 
       1340 
     | 
    
         
            -
            #endif
         
     | 
| 
       1341 
942 
     | 
    
         
             
            }
         
     | 
| 
       1342 
943 
     | 
    
         | 
| 
       1343 
944 
     | 
    
         
             
            /*! BITv06_lookBitsFast() :
         
     | 
| 
         @@ -1501,8 +1102,6 @@ static void     FSEv06_initDState(FSEv06_DState_t* DStatePtr, BITv06_DStream_t* 
     | 
|
| 
       1501 
1102 
     | 
    
         | 
| 
       1502 
1103 
     | 
    
         
             
            static unsigned char FSEv06_decodeSymbol(FSEv06_DState_t* DStatePtr, BITv06_DStream_t* bitD);
         
     | 
| 
       1503 
1104 
     | 
    
         | 
| 
       1504 
     | 
    
         
            -
            static unsigned FSEv06_endOfDState(const FSEv06_DState_t* DStatePtr);
         
     | 
| 
       1505 
     | 
    
         
            -
             
     | 
| 
       1506 
1105 
     | 
    
         
             
            /*!
         
     | 
| 
       1507 
1106 
     | 
    
         
             
            Let's now decompose FSEv06_decompress_usingDTable() into its unitary components.
         
     | 
| 
       1508 
1107 
     | 
    
         
             
            You will decode FSE-encoded symbols from the bitStream,
         
     | 
| 
         @@ -1565,7 +1164,7 @@ static unsigned char FSEv06_decodeSymbolFast(FSEv06_DState_t* DStatePtr, BITv06_ 
     | 
|
| 
       1565 
1164 
     | 
    
         
             
            *******************************************/
         
     | 
| 
       1566 
1165 
     | 
    
         | 
| 
       1567 
1166 
     | 
    
         | 
| 
       1568 
     | 
    
         
            -
             
     | 
| 
      
 1167 
     | 
    
         
            +
            /* ======    Decompression    ====== */
         
     | 
| 
       1569 
1168 
     | 
    
         | 
| 
       1570 
1169 
     | 
    
         
             
            typedef struct {
         
     | 
| 
       1571 
1170 
     | 
    
         
             
                U16 tableLog;
         
     | 
| 
         @@ -1626,11 +1225,6 @@ MEM_STATIC BYTE FSEv06_decodeSymbolFast(FSEv06_DState_t* DStatePtr, BITv06_DStre 
     | 
|
| 
       1626 
1225 
     | 
    
         
             
                return symbol;
         
     | 
| 
       1627 
1226 
     | 
    
         
             
            }
         
     | 
| 
       1628 
1227 
     | 
    
         | 
| 
       1629 
     | 
    
         
            -
            MEM_STATIC unsigned FSEv06_endOfDState(const FSEv06_DState_t* DStatePtr)
         
     | 
| 
       1630 
     | 
    
         
            -
            {
         
     | 
| 
       1631 
     | 
    
         
            -
                return DStatePtr->state == 0;
         
     | 
| 
       1632 
     | 
    
         
            -
            }
         
     | 
| 
       1633 
     | 
    
         
            -
             
     | 
| 
       1634 
1228 
     | 
    
         | 
| 
       1635 
1229 
     | 
    
         | 
| 
       1636 
1230 
     | 
    
         
             
            #ifndef FSEv06_COMMONDEFS_ONLY
         
     | 
| 
         @@ -1876,12 +1470,15 @@ size_t FSEv06_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned 
     | 
|
| 
       1876 
1470 
     | 
    
         
             
            #  pragma warning(disable : 4127)        /* disable: C4127: conditional expression is constant */
         
     | 
| 
       1877 
1471 
     | 
    
         
             
            #  pragma warning(disable : 4214)        /* disable: C4214: non-int bitfields */
         
     | 
| 
       1878 
1472 
     | 
    
         
             
            #else
         
     | 
| 
       1879 
     | 
    
         
            -
            #   
     | 
| 
       1880 
     | 
    
         
            -
            #     
     | 
| 
       1881 
     | 
    
         
            -
            # 
     | 
| 
      
 1473 
     | 
    
         
            +
            #  if defined (__cplusplus) || defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L   /* C99 */
         
     | 
| 
      
 1474 
     | 
    
         
            +
            #    ifdef __GNUC__
         
     | 
| 
      
 1475 
     | 
    
         
            +
            #      define FORCE_INLINE static inline __attribute__((always_inline))
         
     | 
| 
      
 1476 
     | 
    
         
            +
            #    else
         
     | 
| 
      
 1477 
     | 
    
         
            +
            #      define FORCE_INLINE static inline
         
     | 
| 
      
 1478 
     | 
    
         
            +
            #    endif
         
     | 
| 
       1882 
1479 
     | 
    
         
             
            #  else
         
     | 
| 
       1883 
     | 
    
         
            -
            #    define FORCE_INLINE static 
     | 
| 
       1884 
     | 
    
         
            -
            #  endif
         
     | 
| 
      
 1480 
     | 
    
         
            +
            #    define FORCE_INLINE static
         
     | 
| 
      
 1481 
     | 
    
         
            +
            #  endif /* __STDC_VERSION__ */
         
     | 
| 
       1885 
1482 
     | 
    
         
             
            #endif
         
     | 
| 
       1886 
1483 
     | 
    
         | 
| 
       1887 
1484 
     | 
    
         | 
| 
         @@ -2335,9 +1932,11 @@ MEM_STATIC size_t HUFv06_readStats(BYTE* huffWeight, size_t hwSize, U32* rankSta 
     | 
|
| 
       2335 
1932 
     | 
    
         
             
            {
         
     | 
| 
       2336 
1933 
     | 
    
         
             
                U32 weightTotal;
         
     | 
| 
       2337 
1934 
     | 
    
         
             
                const BYTE* ip = (const BYTE*) src;
         
     | 
| 
       2338 
     | 
    
         
            -
                size_t iSize 
     | 
| 
      
 1935 
     | 
    
         
            +
                size_t iSize;
         
     | 
| 
       2339 
1936 
     | 
    
         
             
                size_t oSize;
         
     | 
| 
       2340 
1937 
     | 
    
         | 
| 
      
 1938 
     | 
    
         
            +
                if (!srcSize) return ERROR(srcSize_wrong);
         
     | 
| 
      
 1939 
     | 
    
         
            +
                iSize = ip[0];
         
     | 
| 
       2341 
1940 
     | 
    
         
             
                //memset(huffWeight, 0, hwSize);   /* is not necessary, even though some analyzer complain ... */
         
     | 
| 
       2342 
1941 
     | 
    
         | 
| 
       2343 
1942 
     | 
    
         
             
                if (iSize >= 128)  { /* special header */
         
     | 
| 
         @@ -2372,6 +1971,7 @@ MEM_STATIC size_t HUFv06_readStats(BYTE* huffWeight, size_t hwSize, U32* rankSta 
     | 
|
| 
       2372 
1971 
     | 
    
         
             
                        rankStats[huffWeight[n]]++;
         
     | 
| 
       2373 
1972 
     | 
    
         
             
                        weightTotal += (1 << huffWeight[n]) >> 1;
         
     | 
| 
       2374 
1973 
     | 
    
         
             
                }   }
         
     | 
| 
      
 1974 
     | 
    
         
            +
                if (weightTotal == 0) return ERROR(corruption_detected);
         
     | 
| 
       2375 
1975 
     | 
    
         | 
| 
       2376 
1976 
     | 
    
         
             
                /* get last non-null symbol weight (implied, total must be 2^n) */
         
     | 
| 
       2377 
1977 
     | 
    
         
             
                {   U32 const tableLog = BITv06_highbit32(weightTotal) + 1;
         
     | 
| 
         @@ -2449,14 +2049,7 @@ MEM_STATIC size_t HUFv06_readStats(BYTE* huffWeight, size_t hwSize, U32* rankSta 
     | 
|
| 
       2449 
2049 
     | 
    
         | 
| 
       2450 
2050 
     | 
    
         | 
| 
       2451 
2051 
     | 
    
         
             
            #ifdef _MSC_VER    /* Visual Studio */
         
     | 
| 
       2452 
     | 
    
         
            -
            #  define FORCE_INLINE static __forceinline
         
     | 
| 
       2453 
2052 
     | 
    
         
             
            #  pragma warning(disable : 4127)        /* disable: C4127: conditional expression is constant */
         
     | 
| 
       2454 
     | 
    
         
            -
            #else
         
     | 
| 
       2455 
     | 
    
         
            -
            #  ifdef __GNUC__
         
     | 
| 
       2456 
     | 
    
         
            -
            #    define FORCE_INLINE static inline __attribute__((always_inline))
         
     | 
| 
       2457 
     | 
    
         
            -
            #  else
         
     | 
| 
       2458 
     | 
    
         
            -
            #    define FORCE_INLINE static inline
         
     | 
| 
       2459 
     | 
    
         
            -
            #  endif
         
     | 
| 
       2460 
2053 
     | 
    
         
             
            #endif
         
     | 
| 
       2461 
2054 
     | 
    
         | 
| 
       2462 
2055 
     | 
    
         | 
| 
         @@ -3201,14 +2794,6 @@ unsigned ZSTDv06_isError(size_t code) { return ERR_isError(code); } 
     | 
|
| 
       3201 
2794 
     | 
    
         
             
            *   provides error code string from function result (useful for debugging) */
         
     | 
| 
       3202 
2795 
     | 
    
         
             
            const char* ZSTDv06_getErrorName(size_t code) { return ERR_getErrorName(code); }
         
     | 
| 
       3203 
2796 
     | 
    
         | 
| 
       3204 
     | 
    
         
            -
            /*! ZSTDv06_getError() :
         
     | 
| 
       3205 
     | 
    
         
            -
            *   convert a `size_t` function result into a proper ZSTDv06_errorCode enum */
         
     | 
| 
       3206 
     | 
    
         
            -
            ZSTDv06_ErrorCode ZSTDv06_getErrorCode(size_t code) { return ERR_getErrorCode(code); }
         
     | 
| 
       3207 
     | 
    
         
            -
             
     | 
| 
       3208 
     | 
    
         
            -
            /*! ZSTDv06_getErrorString() :
         
     | 
| 
       3209 
     | 
    
         
            -
            *   provides error code string from enum */
         
     | 
| 
       3210 
     | 
    
         
            -
            const char* ZSTDv06_getErrorString(ZSTDv06_ErrorCode code) { return ERR_getErrorName(code); }
         
     | 
| 
       3211 
     | 
    
         
            -
             
     | 
| 
       3212 
2797 
     | 
    
         | 
| 
       3213 
2798 
     | 
    
         
             
            /* **************************************************************
         
     | 
| 
       3214 
2799 
     | 
    
         
             
            *  ZBUFF Error Management
         
     | 
| 
         @@ -3265,16 +2850,9 @@ const char* ZBUFFv06_getErrorName(size_t errorCode) { return ERR_getErrorName(er 
     | 
|
| 
       3265 
2850 
     | 
    
         
             
            *  Compiler specifics
         
     | 
| 
       3266 
2851 
     | 
    
         
             
            *********************************************************/
         
     | 
| 
       3267 
2852 
     | 
    
         
             
            #ifdef _MSC_VER    /* Visual Studio */
         
     | 
| 
       3268 
     | 
    
         
            -
            #  define FORCE_INLINE static __forceinline
         
     | 
| 
       3269 
2853 
     | 
    
         
             
            #  include <intrin.h>                    /* For Visual 2005 */
         
     | 
| 
       3270 
2854 
     | 
    
         
             
            #  pragma warning(disable : 4127)        /* disable: C4127: conditional expression is constant */
         
     | 
| 
       3271 
2855 
     | 
    
         
             
            #  pragma warning(disable : 4324)        /* disable: C4324: padded structure */
         
     | 
| 
       3272 
     | 
    
         
            -
            #else
         
     | 
| 
       3273 
     | 
    
         
            -
            #  ifdef __GNUC__
         
     | 
| 
       3274 
     | 
    
         
            -
            #    define FORCE_INLINE static inline __attribute__((always_inline))
         
     | 
| 
       3275 
     | 
    
         
            -
            #  else
         
     | 
| 
       3276 
     | 
    
         
            -
            #    define FORCE_INLINE static inline
         
     | 
| 
       3277 
     | 
    
         
            -
            #  endif
         
     | 
| 
       3278 
2856 
     | 
    
         
             
            #endif
         
     | 
| 
       3279 
2857 
     | 
    
         | 
| 
       3280 
2858 
     | 
    
         | 
| 
         @@ -3608,6 +3186,7 @@ size_t ZSTDv06_decodeLiteralsBlock(ZSTDv06_DCtx* dctx, 
     | 
|
| 
       3608 
3186 
     | 
    
         
             
                        lhSize=3;
         
     | 
| 
       3609 
3187 
     | 
    
         
             
                        litSize  = ((istart[0] & 15) << 6) + (istart[1] >> 2);
         
     | 
| 
       3610 
3188 
     | 
    
         
             
                        litCSize = ((istart[1] &  3) << 8) + istart[2];
         
     | 
| 
      
 3189 
     | 
    
         
            +
                        if (litCSize + litSize > srcSize) return ERROR(corruption_detected);
         
     | 
| 
       3611 
3190 
     | 
    
         | 
| 
       3612 
3191 
     | 
    
         
             
                        {   size_t const errorCode = HUFv06_decompress1X4_usingDTable(dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->hufTableX4);
         
     | 
| 
       3613 
3192 
     | 
    
         
             
                            if (HUFv06_isError(errorCode)) return ERROR(corruption_detected);
         
     | 
| 
         @@ -3727,10 +3306,13 @@ size_t ZSTDv06_decodeSeqHeaders(int* nbSeqPtr, 
     | 
|
| 
       3727 
3306 
     | 
    
         
             
                {   int nbSeq = *ip++;
         
     | 
| 
       3728 
3307 
     | 
    
         
             
                    if (!nbSeq) { *nbSeqPtr=0; return 1; }
         
     | 
| 
       3729 
3308 
     | 
    
         
             
                    if (nbSeq > 0x7F) {
         
     | 
| 
       3730 
     | 
    
         
            -
                        if (nbSeq == 0xFF)
         
     | 
| 
      
 3309 
     | 
    
         
            +
                        if (nbSeq == 0xFF) {
         
     | 
| 
      
 3310 
     | 
    
         
            +
                            if (ip+2 > iend) return ERROR(srcSize_wrong);
         
     | 
| 
       3731 
3311 
     | 
    
         
             
                            nbSeq = MEM_readLE16(ip) + LONGNBSEQ, ip+=2;
         
     | 
| 
       3732 
     | 
    
         
            -
                        else
         
     | 
| 
      
 3312 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 3313 
     | 
    
         
            +
                            if (ip >= iend) return ERROR(srcSize_wrong);
         
     | 
| 
       3733 
3314 
     | 
    
         
             
                            nbSeq = ((nbSeq-0x80)<<8) + *ip++;
         
     | 
| 
      
 3315 
     | 
    
         
            +
                        }
         
     | 
| 
       3734 
3316 
     | 
    
         
             
                    }
         
     | 
| 
       3735 
3317 
     | 
    
         
             
                    *nbSeqPtr = nbSeq;
         
     | 
| 
       3736 
3318 
     | 
    
         
             
                }
         
     | 
| 
         @@ -3891,7 +3473,12 @@ size_t ZSTDv06_execSequence(BYTE* op, 
     | 
|
| 
       3891 
3473 
     | 
    
         
             
                        op = oLitEnd + length1;
         
     | 
| 
       3892 
3474 
     | 
    
         
             
                        sequence.matchLength -= length1;
         
     | 
| 
       3893 
3475 
     | 
    
         
             
                        match = base;
         
     | 
| 
      
 3476 
     | 
    
         
            +
                        if (op > oend_8) {
         
     | 
| 
      
 3477 
     | 
    
         
            +
                          while (op < oMatchEnd) *op++ = *match++;
         
     | 
| 
      
 3478 
     | 
    
         
            +
                          return sequenceLength;
         
     | 
| 
      
 3479 
     | 
    
         
            +
                        }
         
     | 
| 
       3894 
3480 
     | 
    
         
             
                }   }
         
     | 
| 
      
 3481 
     | 
    
         
            +
                /* Requirement: op <= oend_8 */
         
     | 
| 
       3895 
3482 
     | 
    
         | 
| 
       3896 
3483 
     | 
    
         
             
                /* match within prefix */
         
     | 
| 
       3897 
3484 
     | 
    
         
             
                if (sequence.offset < 8) {
         
     | 
| 
         @@ -4247,9 +3834,10 @@ static size_t ZSTDv06_loadEntropy(ZSTDv06_DCtx* dctx, const void* dict, size_t d 
     | 
|
| 
       4247 
3834 
     | 
    
         
             
                dictSize -= hSize;
         
     | 
| 
       4248 
3835 
     | 
    
         | 
| 
       4249 
3836 
     | 
    
         
             
                {   short offcodeNCount[MaxOff+1];
         
     | 
| 
       4250 
     | 
    
         
            -
                    U32 offcodeMaxValue=MaxOff, offcodeLog 
     | 
| 
      
 3837 
     | 
    
         
            +
                    U32 offcodeMaxValue=MaxOff, offcodeLog;
         
     | 
| 
       4251 
3838 
     | 
    
         
             
                    offcodeHeaderSize = FSEv06_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dict, dictSize);
         
     | 
| 
       4252 
3839 
     | 
    
         
             
                    if (FSEv06_isError(offcodeHeaderSize)) return ERROR(dictionary_corrupted);
         
     | 
| 
      
 3840 
     | 
    
         
            +
                    if (offcodeLog > OffFSELog) return ERROR(dictionary_corrupted);
         
     | 
| 
       4253 
3841 
     | 
    
         
             
                    { size_t const errorCode = FSEv06_buildDTable(dctx->OffTable, offcodeNCount, offcodeMaxValue, offcodeLog);
         
     | 
| 
       4254 
3842 
     | 
    
         
             
                      if (FSEv06_isError(errorCode)) return ERROR(dictionary_corrupted); }
         
     | 
| 
       4255 
3843 
     | 
    
         
             
                    dict = (const char*)dict + offcodeHeaderSize;
         
     | 
| 
         @@ -4257,9 +3845,10 @@ static size_t ZSTDv06_loadEntropy(ZSTDv06_DCtx* dctx, const void* dict, size_t d 
     | 
|
| 
       4257 
3845 
     | 
    
         
             
                }
         
     | 
| 
       4258 
3846 
     | 
    
         | 
| 
       4259 
3847 
     | 
    
         
             
                {   short matchlengthNCount[MaxML+1];
         
     | 
| 
       4260 
     | 
    
         
            -
                    unsigned matchlengthMaxValue = MaxML, matchlengthLog 
     | 
| 
      
 3848 
     | 
    
         
            +
                    unsigned matchlengthMaxValue = MaxML, matchlengthLog;
         
     | 
| 
       4261 
3849 
     | 
    
         
             
                    matchlengthHeaderSize = FSEv06_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dict, dictSize);
         
     | 
| 
       4262 
3850 
     | 
    
         
             
                    if (FSEv06_isError(matchlengthHeaderSize)) return ERROR(dictionary_corrupted);
         
     | 
| 
      
 3851 
     | 
    
         
            +
                    if (matchlengthLog > MLFSELog) return ERROR(dictionary_corrupted);
         
     | 
| 
       4263 
3852 
     | 
    
         
             
                    { size_t const errorCode = FSEv06_buildDTable(dctx->MLTable, matchlengthNCount, matchlengthMaxValue, matchlengthLog);
         
     | 
| 
       4264 
3853 
     | 
    
         
             
                      if (FSEv06_isError(errorCode)) return ERROR(dictionary_corrupted); }
         
     | 
| 
       4265 
3854 
     | 
    
         
             
                    dict = (const char*)dict + matchlengthHeaderSize;
         
     | 
| 
         @@ -4267,9 +3856,10 @@ static size_t ZSTDv06_loadEntropy(ZSTDv06_DCtx* dctx, const void* dict, size_t d 
     | 
|
| 
       4267 
3856 
     | 
    
         
             
                }
         
     | 
| 
       4268 
3857 
     | 
    
         | 
| 
       4269 
3858 
     | 
    
         
             
                {   short litlengthNCount[MaxLL+1];
         
     | 
| 
       4270 
     | 
    
         
            -
                    unsigned litlengthMaxValue = MaxLL, litlengthLog 
     | 
| 
      
 3859 
     | 
    
         
            +
                    unsigned litlengthMaxValue = MaxLL, litlengthLog;
         
     | 
| 
       4271 
3860 
     | 
    
         
             
                    litlengthHeaderSize = FSEv06_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dict, dictSize);
         
     | 
| 
       4272 
3861 
     | 
    
         
             
                    if (FSEv06_isError(litlengthHeaderSize)) return ERROR(dictionary_corrupted);
         
     | 
| 
      
 3862 
     | 
    
         
            +
                    if (litlengthLog > LLFSELog) return ERROR(dictionary_corrupted);
         
     | 
| 
       4273 
3863 
     | 
    
         
             
                    { size_t const errorCode = FSEv06_buildDTable(dctx->LLTable, litlengthNCount, litlengthMaxValue, litlengthLog);
         
     | 
| 
       4274 
3864 
     | 
    
         
             
                      if (FSEv06_isError(errorCode)) return ERROR(dictionary_corrupted); }
         
     | 
| 
       4275 
3865 
     | 
    
         
             
                }
         
     |