zstdlib 0.7.0-x64-mingw32 → 0.10.0-x64-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/CHANGES.md +20 -0
- data/README.md +7 -1
- data/Rakefile +38 -8
- data/ext/{zstdlib → zstdlib_c}/extconf.rb +11 -6
- data/ext/{zstdlib → zstdlib_c}/ruby/zlib-2.2/zstdlib.c +2 -2
- data/ext/{zstdlib → zstdlib_c}/ruby/zlib-2.3/zstdlib.c +2 -2
- data/ext/{zstdlib → zstdlib_c}/ruby/zlib-2.4/zstdlib.c +2 -2
- data/ext/{zstdlib → zstdlib_c}/ruby/zlib-2.5/zstdlib.c +2 -2
- data/ext/{zstdlib → zstdlib_c}/ruby/zlib-2.6/zstdlib.c +2 -2
- data/ext/{zstdlib → zstdlib_c}/ruby/zlib-2.7/zstdlib.c +2 -2
- data/ext/zstdlib_c/ruby/zlib-3.0/zstdlib.c +4994 -0
- data/ext/zstdlib_c/ruby/zlib-3.1/zstdlib.c +5076 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/adler32.c +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/compress.c +0 -0
- data/ext/zstdlib_c/zlib-1.2.12/crc32.c +1116 -0
- data/ext/zstdlib_c/zlib-1.2.12/crc32.h +9446 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/deflate.c +78 -30
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/deflate.h +12 -15
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/gzclose.c +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/gzguts.h +3 -2
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/gzlib.c +5 -3
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/gzread.c +5 -7
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/gzwrite.c +25 -13
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/infback.c +2 -1
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inffast.c +14 -14
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inffast.h +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inffixed.h +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inflate.c +39 -8
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inflate.h +3 -2
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inftrees.c +3 -3
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/inftrees.h +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/trees.c +27 -48
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/trees.h +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/uncompr.c +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/zconf.h +0 -0
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/zlib.h +123 -100
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/zutil.c +2 -2
- data/ext/{zstdlib/zlib-1.2.11 → zstdlib_c/zlib-1.2.12}/zutil.h +12 -9
- data/ext/{zstdlib → zstdlib_c}/zlib.mk +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlibwrapper/zlibwrapper.c +1 -5
- data/ext/{zstdlib → zstdlib_c}/zlibwrapper.mk +0 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/bitstream.h +46 -22
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/compiler.h +335 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/cpu.h +1 -3
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/debug.c +1 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/debug.h +12 -19
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/entropy_common.c +368 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/error_private.c +2 -1
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/error_private.h +159 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/fse.h +41 -12
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/fse_decompress.c +139 -22
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/huf.h +47 -23
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/mem.h +87 -98
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/pool.c +34 -23
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/pool.h +4 -4
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/portability_macros.h +137 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/threading.c +6 -5
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/threading.h +0 -0
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/xxhash.c +24 -0
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/xxhash.h +5686 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/zstd_common.c +10 -10
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/zstd_deps.h +111 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/common/zstd_internal.h +191 -145
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/zstd_trace.h +163 -0
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/clevels.h +134 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/fse_compress.c +89 -46
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/hist.c +27 -29
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/hist.h +2 -2
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/huf_compress.c +1370 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress.c +2917 -868
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_internal.h +458 -125
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_literals.c +12 -11
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_literals.h +4 -2
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_sequences.c +41 -18
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_sequences.h +1 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_superblock.c +26 -298
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_superblock.h +1 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_cwksp.h +234 -83
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_double_fast.c +313 -138
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_double_fast.h +1 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_fast.c +329 -150
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_fast.h +1 -1
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/zstd_lazy.c +2104 -0
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/zstd_lazy.h +125 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_ldm.c +321 -216
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_ldm.h +9 -2
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/zstd_ldm_geartab.h +106 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_opt.c +412 -166
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_opt.h +1 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/compress/zstdmt_compress.c +169 -453
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/zstdmt_compress.h +113 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/huf_decompress.c +1044 -403
- data/ext/zstdlib_c/zstd-1.5.2/lib/decompress/huf_decompress_amd64.S +585 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_ddict.c +9 -9
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_ddict.h +2 -2
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress.c +450 -105
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_block.c +913 -273
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_block.h +14 -5
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_internal.h +59 -12
- data/ext/zstdlib_c/zstd-1.5.2/lib/zdict.h +452 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/zstd.h +699 -214
- data/ext/{zstdlib/zstd-1.4.5/lib/common → zstdlib_c/zstd-1.5.2/lib}/zstd_errors.h +2 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzclose.c +0 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzcompatibility.h +1 -1
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzguts.h +0 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzlib.c +0 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzread.c +0 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzwrite.c +0 -0
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/zstd_zlibwrapper.c +133 -44
- data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/zlibWrapper/zstd_zlibwrapper.h +1 -1
- data/ext/zstdlib_c/zstd.mk +15 -0
- data/lib/2.4/zstdlib_c.so +0 -0
- data/lib/2.5/zstdlib_c.so +0 -0
- data/lib/2.6/zstdlib_c.so +0 -0
- data/lib/2.7/zstdlib_c.so +0 -0
- data/lib/3.0/zstdlib_c.so +0 -0
- data/lib/zstdlib.rb +2 -2
- metadata +124 -116
- data/ext/zstdlib/zlib-1.2.11/crc32.c +0 -442
- data/ext/zstdlib/zlib-1.2.11/crc32.h +0 -441
- data/ext/zstdlib/zstd-1.4.5/lib/common/compiler.h +0 -175
- data/ext/zstdlib/zstd-1.4.5/lib/common/entropy_common.c +0 -216
- data/ext/zstdlib/zstd-1.4.5/lib/common/error_private.h +0 -80
- data/ext/zstdlib/zstd-1.4.5/lib/common/xxhash.c +0 -864
- data/ext/zstdlib/zstd-1.4.5/lib/common/xxhash.h +0 -285
- data/ext/zstdlib/zstd-1.4.5/lib/compress/huf_compress.c +0 -798
- data/ext/zstdlib/zstd-1.4.5/lib/compress/zstd_lazy.c +0 -1138
- data/ext/zstdlib/zstd-1.4.5/lib/compress/zstd_lazy.h +0 -67
- data/ext/zstdlib/zstd-1.4.5/lib/compress/zstdmt_compress.h +0 -192
- data/ext/zstdlib/zstd.mk +0 -14
- data/lib/2.2/zstdlib.so +0 -0
- data/lib/2.3/zstdlib.so +0 -0
- data/lib/2.4/zstdlib.so +0 -0
- data/lib/2.5/zstdlib.so +0 -0
- data/lib/2.6/zstdlib.so +0 -0
- data/lib/2.7/zstdlib.so +0 -0
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /*
         | 
| 2 | 
            -
             * Copyright (c)  | 
| 2 | 
            +
             * Copyright (c) Yann Collet, Facebook, Inc.
         | 
| 3 3 | 
             
             * All rights reserved.
         | 
| 4 4 | 
             
             *
         | 
| 5 5 | 
             
             * This source code is licensed under both the BSD-style license (found in the
         | 
| @@ -15,7 +15,7 @@ | |
| 15 15 | 
             
            /*-*******************************************************
         | 
| 16 16 | 
             
             *  Dependencies
         | 
| 17 17 | 
             
             *********************************************************/
         | 
| 18 | 
            -
            #include  | 
| 18 | 
            +
            #include "../common/zstd_deps.h"   /* size_t */
         | 
| 19 19 | 
             
            #include "../zstd.h"    /* DCtx, and some public functions */
         | 
| 20 20 | 
             
            #include "../common/zstd_internal.h"  /* blockProperties_t, and some public functions */
         | 
| 21 21 | 
             
            #include "zstd_decompress_internal.h"  /* ZSTD_seqSymbol */
         | 
| @@ -33,6 +33,12 @@ | |
| 33 33 | 
             
             */
         | 
| 34 34 |  | 
| 35 35 |  | 
| 36 | 
            +
             /* Streaming state is used to inform allocation of the literal buffer */
         | 
| 37 | 
            +
            typedef enum {
         | 
| 38 | 
            +
                not_streaming = 0,
         | 
| 39 | 
            +
                is_streaming = 1
         | 
| 40 | 
            +
            } streaming_operation;
         | 
| 41 | 
            +
             | 
| 36 42 | 
             
            /* ZSTD_decompressBlock_internal() :
         | 
| 37 43 | 
             
             * decompress block, starting at `src`,
         | 
| 38 44 | 
             
             * into destination buffer `dst`.
         | 
| @@ -41,19 +47,22 @@ | |
| 41 47 | 
             
             */
         | 
| 42 48 | 
             
            size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
         | 
| 43 49 | 
             
                                           void* dst, size_t dstCapacity,
         | 
| 44 | 
            -
                                     const void* src, size_t srcSize, const int frame);
         | 
| 50 | 
            +
                                     const void* src, size_t srcSize, const int frame, const streaming_operation streaming);
         | 
| 45 51 |  | 
| 46 52 | 
             
            /* ZSTD_buildFSETable() :
         | 
| 47 53 | 
             
             * generate FSE decoding table for one symbol (ll, ml or off)
         | 
| 48 54 | 
             
             * this function must be called with valid parameters only
         | 
| 49 55 | 
             
             * (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.)
         | 
| 50 56 | 
             
             * in which case it cannot fail.
         | 
| 57 | 
            +
             * The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is
         | 
| 58 | 
            +
             * defined in zstd_decompress_internal.h.
         | 
| 51 59 | 
             
             * Internal use only.
         | 
| 52 60 | 
             
             */
         | 
| 53 61 | 
             
            void ZSTD_buildFSETable(ZSTD_seqSymbol* dt,
         | 
| 54 62 | 
             
                         const short* normalizedCounter, unsigned maxSymbolValue,
         | 
| 55 | 
            -
                         const U32* baseValue, const  | 
| 56 | 
            -
                               unsigned tableLog | 
| 63 | 
            +
                         const U32* baseValue, const U8* nbAdditionalBits,
         | 
| 64 | 
            +
                               unsigned tableLog, void* wksp, size_t wkspSize,
         | 
| 65 | 
            +
                               int bmi2);
         | 
| 57 66 |  | 
| 58 67 |  | 
| 59 68 | 
             
            #endif /* ZSTD_DEC_BLOCK_H */
         | 
    
        data/ext/{zstdlib/zstd-1.4.5 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_internal.h
    RENAMED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /*
         | 
| 2 | 
            -
             * Copyright (c)  | 
| 2 | 
            +
             * Copyright (c) Yann Collet, Facebook, Inc.
         | 
| 3 3 | 
             
             * All rights reserved.
         | 
| 4 4 | 
             
             *
         | 
| 5 5 | 
             
             * This source code is licensed under both the BSD-style license (found in the
         | 
| @@ -20,33 +20,33 @@ | |
| 20 20 | 
             
             *  Dependencies
         | 
| 21 21 | 
             
             *********************************************************/
         | 
| 22 22 | 
             
            #include "../common/mem.h"             /* BYTE, U16, U32 */
         | 
| 23 | 
            -
            #include "../common/zstd_internal.h"   /*  | 
| 23 | 
            +
            #include "../common/zstd_internal.h"   /* constants : MaxLL, MaxML, MaxOff, LLFSELog, etc. */
         | 
| 24 24 |  | 
| 25 25 |  | 
| 26 26 |  | 
| 27 27 | 
             
            /*-*******************************************************
         | 
| 28 28 | 
             
             *  Constants
         | 
| 29 29 | 
             
             *********************************************************/
         | 
| 30 | 
            -
            static const U32 LL_base[MaxLL+1] = {
         | 
| 30 | 
            +
            static UNUSED_ATTR const U32 LL_base[MaxLL+1] = {
         | 
| 31 31 | 
             
                             0,    1,    2,     3,     4,     5,     6,      7,
         | 
| 32 32 | 
             
                             8,    9,   10,    11,    12,    13,    14,     15,
         | 
| 33 33 | 
             
                            16,   18,   20,    22,    24,    28,    32,     40,
         | 
| 34 34 | 
             
                            48,   64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000,
         | 
| 35 35 | 
             
                            0x2000, 0x4000, 0x8000, 0x10000 };
         | 
| 36 36 |  | 
| 37 | 
            -
            static const U32 OF_base[MaxOff+1] = {
         | 
| 37 | 
            +
            static UNUSED_ATTR const U32 OF_base[MaxOff+1] = {
         | 
| 38 38 | 
             
                             0,        1,       1,       5,     0xD,     0x1D,     0x3D,     0x7D,
         | 
| 39 39 | 
             
                             0xFD,   0x1FD,   0x3FD,   0x7FD,   0xFFD,   0x1FFD,   0x3FFD,   0x7FFD,
         | 
| 40 40 | 
             
                             0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD,
         | 
| 41 41 | 
             
                             0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD, 0x1FFFFFFD, 0x3FFFFFFD, 0x7FFFFFFD };
         | 
| 42 42 |  | 
| 43 | 
            -
            static const  | 
| 43 | 
            +
            static UNUSED_ATTR const U8 OF_bits[MaxOff+1] = {
         | 
| 44 44 | 
             
                                 0,  1,  2,  3,  4,  5,  6,  7,
         | 
| 45 45 | 
             
                                 8,  9, 10, 11, 12, 13, 14, 15,
         | 
| 46 46 | 
             
                                16, 17, 18, 19, 20, 21, 22, 23,
         | 
| 47 47 | 
             
                                24, 25, 26, 27, 28, 29, 30, 31 };
         | 
| 48 48 |  | 
| 49 | 
            -
            static const U32 ML_base[MaxML+1] = {
         | 
| 49 | 
            +
            static UNUSED_ATTR const U32 ML_base[MaxML+1] = {
         | 
| 50 50 | 
             
                                 3,  4,  5,    6,     7,     8,     9,    10,
         | 
| 51 51 | 
             
                                11, 12, 13,   14,    15,    16,    17,    18,
         | 
| 52 52 | 
             
                                19, 20, 21,   22,    23,    24,    25,    26,
         | 
| @@ -73,12 +73,16 @@ static const U32 ML_base[MaxML+1] = { | |
| 73 73 |  | 
| 74 74 | 
             
             #define SEQSYMBOL_TABLE_SIZE(log)   (1 + (1 << (log)))
         | 
| 75 75 |  | 
| 76 | 
            +
            #define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE (sizeof(S16) * (MaxSeq + 1) + (1u << MaxFSELog) + sizeof(U64))
         | 
| 77 | 
            +
            #define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32 ((ZSTD_BUILD_FSE_TABLE_WKSP_SIZE + sizeof(U32) - 1) / sizeof(U32))
         | 
| 78 | 
            +
             | 
| 76 79 | 
             
            typedef struct {
         | 
| 77 80 | 
             
                ZSTD_seqSymbol LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)];    /* Note : Space reserved for FSE Tables */
         | 
| 78 81 | 
             
                ZSTD_seqSymbol OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)];   /* is also used as temporary workspace while building hufTable during DDict creation */
         | 
| 79 82 | 
             
                ZSTD_seqSymbol MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)];    /* and therefore must be at least HUF_DECOMPRESS_WORKSPACE_SIZE large */
         | 
| 80 83 | 
             
                HUF_DTable hufTable[HUF_DTABLE_SIZE(HufLog)];  /* can accommodate HUF_decompress4X */
         | 
| 81 84 | 
             
                U32 rep[ZSTD_REP_NUM];
         | 
| 85 | 
            +
                U32 workspace[ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32];
         | 
| 82 86 | 
             
            } ZSTD_entropyDTables_t;
         | 
| 83 87 |  | 
| 84 88 | 
             
            typedef enum { ZSTDds_getFrameHeaderSize, ZSTDds_decodeFrameHeader,
         | 
| @@ -95,10 +99,28 @@ typedef enum { | |
| 95 99 | 
             
                ZSTD_use_once = 1            /* Use the dictionary once and set to ZSTD_dont_use */
         | 
| 96 100 | 
             
            } ZSTD_dictUses_e;
         | 
| 97 101 |  | 
| 102 | 
            +
            /* Hashset for storing references to multiple ZSTD_DDict within ZSTD_DCtx */
         | 
| 103 | 
            +
            typedef struct {
         | 
| 104 | 
            +
                const ZSTD_DDict** ddictPtrTable;
         | 
| 105 | 
            +
                size_t ddictPtrTableSize;
         | 
| 106 | 
            +
                size_t ddictPtrCount;
         | 
| 107 | 
            +
            } ZSTD_DDictHashSet;
         | 
| 108 | 
            +
             | 
| 109 | 
            +
            #ifndef ZSTD_DECODER_INTERNAL_BUFFER
         | 
| 110 | 
            +
            #  define ZSTD_DECODER_INTERNAL_BUFFER  (1 << 16)
         | 
| 111 | 
            +
            #endif
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            #define ZSTD_LBMIN 64
         | 
| 114 | 
            +
            #define ZSTD_LBMAX (128 << 10)
         | 
| 115 | 
            +
             | 
| 116 | 
            +
            /* extra buffer, compensates when dst is not large enough to store litBuffer */
         | 
| 117 | 
            +
            #define ZSTD_LITBUFFEREXTRASIZE  BOUNDED(ZSTD_LBMIN, ZSTD_DECODER_INTERNAL_BUFFER, ZSTD_LBMAX)
         | 
| 118 | 
            +
             | 
| 98 119 | 
             
            typedef enum {
         | 
| 99 | 
            -
                 | 
| 100 | 
            -
                 | 
| 101 | 
            -
             | 
| 120 | 
            +
                ZSTD_not_in_dst = 0,  /* Stored entirely within litExtraBuffer */
         | 
| 121 | 
            +
                ZSTD_in_dst = 1,           /* Stored entirely within dst (in memory after current output write) */
         | 
| 122 | 
            +
                ZSTD_split = 2            /* Split between litExtraBuffer and dst */
         | 
| 123 | 
            +
            } ZSTD_litLocation_e;
         | 
| 102 124 |  | 
| 103 125 | 
             
            struct ZSTD_DCtx_s
         | 
| 104 126 | 
             
            {
         | 
| @@ -114,6 +136,7 @@ struct ZSTD_DCtx_s | |
| 114 136 | 
             
                const void* dictEnd;          /* end of previous segment */
         | 
| 115 137 | 
             
                size_t expected;
         | 
| 116 138 | 
             
                ZSTD_frameHeader fParams;
         | 
| 139 | 
            +
                U64 processedCSize;
         | 
| 117 140 | 
             
                U64 decodedSize;
         | 
| 118 141 | 
             
                blockType_e bType;            /* used in ZSTD_decompressContinue(), store blockType between block header decoding and block decompression stages */
         | 
| 119 142 | 
             
                ZSTD_dStage stage;
         | 
| @@ -122,12 +145,16 @@ struct ZSTD_DCtx_s | |
| 122 145 | 
             
                XXH64_state_t xxhState;
         | 
| 123 146 | 
             
                size_t headerSize;
         | 
| 124 147 | 
             
                ZSTD_format_e format;
         | 
| 148 | 
            +
                ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum;   /* User specified: if == 1, will ignore checksums in compressed frame. Default == 0 */
         | 
| 149 | 
            +
                U32 validateChecksum;         /* if == 1, will validate checksum. Is == 1 if (fParams.checksumFlag == 1) and (forceIgnoreChecksum == 0). */
         | 
| 125 150 | 
             
                const BYTE* litPtr;
         | 
| 126 151 | 
             
                ZSTD_customMem customMem;
         | 
| 127 152 | 
             
                size_t litSize;
         | 
| 128 153 | 
             
                size_t rleSize;
         | 
| 129 154 | 
             
                size_t staticSize;
         | 
| 155 | 
            +
            #if DYNAMIC_BMI2 != 0
         | 
| 130 156 | 
             
                int bmi2;                     /* == 1 if the CPU supports BMI2 and 0 otherwise. CPU support is determined dynamically once per context lifetime. */
         | 
| 157 | 
            +
            #endif
         | 
| 131 158 |  | 
| 132 159 | 
             
                /* dictionary */
         | 
| 133 160 | 
             
                ZSTD_DDict* ddictLocal;
         | 
| @@ -135,6 +162,8 @@ struct ZSTD_DCtx_s | |
| 135 162 | 
             
                U32 dictID;
         | 
| 136 163 | 
             
                int ddictIsCold;             /* if == 1 : dictionary is "new" for working context, and presumed "cold" (not in cpu cache) */
         | 
| 137 164 | 
             
                ZSTD_dictUses_e dictUses;
         | 
| 165 | 
            +
                ZSTD_DDictHashSet* ddictSet;                    /* Hash set for multiple ddicts */
         | 
| 166 | 
            +
                ZSTD_refMultipleDDicts_e refMultipleDDicts;     /* User specified: if == 1, will allow references to multiple DDicts. Default == 0 (disabled) */
         | 
| 138 167 |  | 
| 139 168 | 
             
                /* streaming */
         | 
| 140 169 | 
             
                ZSTD_dStreamStage streamStage;
         | 
| @@ -147,16 +176,21 @@ struct ZSTD_DCtx_s | |
| 147 176 | 
             
                size_t outStart;
         | 
| 148 177 | 
             
                size_t outEnd;
         | 
| 149 178 | 
             
                size_t lhSize;
         | 
| 179 | 
            +
            #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1)
         | 
| 150 180 | 
             
                void* legacyContext;
         | 
| 151 181 | 
             
                U32 previousLegacyVersion;
         | 
| 152 182 | 
             
                U32 legacyVersion;
         | 
| 183 | 
            +
            #endif
         | 
| 153 184 | 
             
                U32 hostageByte;
         | 
| 154 185 | 
             
                int noForwardProgress;
         | 
| 155 | 
            -
                 | 
| 186 | 
            +
                ZSTD_bufferMode_e outBufferMode;
         | 
| 156 187 | 
             
                ZSTD_outBuffer expectedOutBuffer;
         | 
| 157 188 |  | 
| 158 189 | 
             
                /* workspace */
         | 
| 159 | 
            -
                BYTE litBuffer | 
| 190 | 
            +
                BYTE* litBuffer;
         | 
| 191 | 
            +
                const BYTE* litBufferEnd;
         | 
| 192 | 
            +
                ZSTD_litLocation_e litBufferLocation;
         | 
| 193 | 
            +
                BYTE litExtraBuffer[ZSTD_LITBUFFEREXTRASIZE + WILDCOPY_OVERLENGTH]; /* literal buffer can be split between storage within dst and within this scratch buffer */
         | 
| 160 194 | 
             
                BYTE headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX];
         | 
| 161 195 |  | 
| 162 196 | 
             
                size_t oversizedDuration;
         | 
| @@ -165,8 +199,21 @@ struct ZSTD_DCtx_s | |
| 165 199 | 
             
                void const* dictContentBeginForFuzzing;
         | 
| 166 200 | 
             
                void const* dictContentEndForFuzzing;
         | 
| 167 201 | 
             
            #endif
         | 
| 202 | 
            +
             | 
| 203 | 
            +
                /* Tracing */
         | 
| 204 | 
            +
            #if ZSTD_TRACE
         | 
| 205 | 
            +
                ZSTD_TraceCtx traceCtx;
         | 
| 206 | 
            +
            #endif
         | 
| 168 207 | 
             
            };  /* typedef'd to ZSTD_DCtx within "zstd.h" */
         | 
| 169 208 |  | 
| 209 | 
            +
            MEM_STATIC int ZSTD_DCtx_get_bmi2(const struct ZSTD_DCtx_s *dctx) {
         | 
| 210 | 
            +
            #if DYNAMIC_BMI2 != 0
         | 
| 211 | 
            +
            	return dctx->bmi2;
         | 
| 212 | 
            +
            #else
         | 
| 213 | 
            +
                (void)dctx;
         | 
| 214 | 
            +
            	return 0;
         | 
| 215 | 
            +
            #endif
         | 
| 216 | 
            +
            }
         | 
| 170 217 |  | 
| 171 218 | 
             
            /*-*******************************************************
         | 
| 172 219 | 
             
             *  Shared internal functions
         | 
| @@ -183,7 +230,7 @@ size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, | |
| 183 230 | 
             
             *  If yes, do nothing (continue on current segment).
         | 
| 184 231 | 
             
             *  If not, classify previous segment as "external dictionary", and start a new segment.
         | 
| 185 232 | 
             
             *  This function cannot fail. */
         | 
| 186 | 
            -
            void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst);
         | 
| 233 | 
            +
            void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize);
         | 
| 187 234 |  | 
| 188 235 |  | 
| 189 236 | 
             
            #endif /* ZSTD_DECOMPRESS_INTERNAL_H */
         |