zstdlib 0.14.0-x86-mingw32 → 0.15.0-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/CHANGES.md +5 -0
- data/ext/zstdlib_c/extconf.rb +1 -1
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/bits.h +92 -87
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/bitstream.h +26 -29
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/compiler.h +36 -22
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/cpu.h +1 -1
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/debug.h +0 -9
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/error_private.c +1 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/error_private.h +0 -10
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/fse.h +2 -17
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/fse_decompress.c +2 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/huf.h +0 -9
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/mem.h +7 -11
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/pool.h +0 -9
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/portability_macros.h +22 -9
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/threading.h +0 -8
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/xxhash.h +93 -19
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_deps.h +12 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_internal.h +1 -69
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_trace.h +5 -12
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/hist.c +10 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/hist.h +7 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress.c +1057 -367
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_internal.h +227 -125
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_literals.c +1 -1
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_sequences.c +7 -7
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_sequences.h +7 -6
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_superblock.c +17 -17
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_cwksp.h +41 -24
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_double_fast.c +58 -50
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_double_fast.h +4 -12
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_fast.c +91 -74
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_fast.h +4 -12
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_lazy.c +64 -64
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_lazy.h +30 -39
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm.c +48 -33
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm.h +6 -14
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_opt.c +55 -51
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_opt.h +8 -16
- data/ext/zstdlib_c/zstd-1.5.7/lib/compress/zstd_preSplit.c +238 -0
- data/ext/zstdlib_c/zstd-1.5.7/lib/compress/zstd_preSplit.h +33 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstdmt_compress.c +134 -93
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstdmt_compress.h +4 -15
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/huf_decompress_amd64.S +10 -3
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress.c +14 -11
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_block.c +6 -12
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_internal.h +5 -5
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zdict.h +15 -8
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zstd.h +241 -132
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/zstd_errors.h +1 -8
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzwrite.c +2 -1
- 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/3.1/zstdlib_c.so +0 -0
- data/lib/3.2/zstdlib_c.so +0 -0
- data/lib/3.3/zstdlib_c.so +0 -0
- data/lib/3.4/zstdlib_c.so +0 -0
- metadata +75 -73
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/allocations.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/debug.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/entropy_common.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/pool.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/threading.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/xxhash.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/common/zstd_common.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/clevels.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/fse_compress.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/huf_compress.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_literals.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_compress_superblock.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/compress/zstd_ldm_geartab.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/huf_decompress.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_ddict.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_ddict.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/lib/decompress/zstd_decompress_block.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzclose.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzcompatibility.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzguts.h +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzlib.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/gzread.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/zstd_zlibwrapper.c +0 -0
- data/ext/zstdlib_c/{zstd-1.5.6 → zstd-1.5.7}/zlibWrapper/zstd_zlibwrapper.h +5 -5
| @@ -26,7 +26,7 @@ | |
| 26 26 |  | 
| 27 27 | 
             
            static
         | 
| 28 28 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 29 | 
            -
            void ZSTD_updateDUBT( | 
| 29 | 
            +
            void ZSTD_updateDUBT(ZSTD_MatchState_t* ms,
         | 
| 30 30 | 
             
                            const BYTE* ip, const BYTE* iend,
         | 
| 31 31 | 
             
                            U32 mls)
         | 
| 32 32 | 
             
            {
         | 
| @@ -71,7 +71,7 @@ void ZSTD_updateDUBT(ZSTD_matchState_t* ms, | |
| 71 71 | 
             
             *  doesn't fail */
         | 
| 72 72 | 
             
            static
         | 
| 73 73 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 74 | 
            -
            void ZSTD_insertDUBT1(const  | 
| 74 | 
            +
            void ZSTD_insertDUBT1(const ZSTD_MatchState_t* ms,
         | 
| 75 75 | 
             
                             U32 curr, const BYTE* inputEnd,
         | 
| 76 76 | 
             
                             U32 nbCompares, U32 btLow,
         | 
| 77 77 | 
             
                             const ZSTD_dictMode_e dictMode)
         | 
| @@ -162,7 +162,7 @@ void ZSTD_insertDUBT1(const ZSTD_matchState_t* ms, | |
| 162 162 | 
             
            static
         | 
| 163 163 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 164 164 | 
             
            size_t ZSTD_DUBT_findBetterDictMatch (
         | 
| 165 | 
            -
                    const  | 
| 165 | 
            +
                    const ZSTD_MatchState_t* ms,
         | 
| 166 166 | 
             
                    const BYTE* const ip, const BYTE* const iend,
         | 
| 167 167 | 
             
                    size_t* offsetPtr,
         | 
| 168 168 | 
             
                    size_t bestLength,
         | 
| @@ -170,7 +170,7 @@ size_t ZSTD_DUBT_findBetterDictMatch ( | |
| 170 170 | 
             
                    U32 const mls,
         | 
| 171 171 | 
             
                    const ZSTD_dictMode_e dictMode)
         | 
| 172 172 | 
             
            {
         | 
| 173 | 
            -
                const  | 
| 173 | 
            +
                const ZSTD_MatchState_t * const dms = ms->dictMatchState;
         | 
| 174 174 | 
             
                const ZSTD_compressionParameters* const dmsCParams = &dms->cParams;
         | 
| 175 175 | 
             
                const U32 * const dictHashTable = dms->hashTable;
         | 
| 176 176 | 
             
                U32         const hashLog = dmsCParams->hashLog;
         | 
| @@ -240,7 +240,7 @@ size_t ZSTD_DUBT_findBetterDictMatch ( | |
| 240 240 |  | 
| 241 241 | 
             
            static
         | 
| 242 242 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 243 | 
            -
            size_t ZSTD_DUBT_findBestMatch( | 
| 243 | 
            +
            size_t ZSTD_DUBT_findBestMatch(ZSTD_MatchState_t* ms,
         | 
| 244 244 | 
             
                                    const BYTE* const ip, const BYTE* const iend,
         | 
| 245 245 | 
             
                                    size_t* offBasePtr,
         | 
| 246 246 | 
             
                                    U32 const mls,
         | 
| @@ -392,7 +392,7 @@ size_t ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, | |
| 392 392 | 
             
            /** ZSTD_BtFindBestMatch() : Tree updater, providing best match */
         | 
| 393 393 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 394 394 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 395 | 
            -
            size_t ZSTD_BtFindBestMatch(  | 
| 395 | 
            +
            size_t ZSTD_BtFindBestMatch( ZSTD_MatchState_t* ms,
         | 
| 396 396 | 
             
                            const BYTE* const ip, const BYTE* const iLimit,
         | 
| 397 397 | 
             
                                  size_t* offBasePtr,
         | 
| 398 398 | 
             
                            const U32 mls /* template */,
         | 
| @@ -408,7 +408,7 @@ size_t ZSTD_BtFindBestMatch( ZSTD_matchState_t* ms, | |
| 408 408 | 
             
            * Dedicated dict search
         | 
| 409 409 | 
             
            ***********************************/
         | 
| 410 410 |  | 
| 411 | 
            -
            void ZSTD_dedicatedDictSearch_lazy_loadDictionary( | 
| 411 | 
            +
            void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_MatchState_t* ms, const BYTE* const ip)
         | 
| 412 412 | 
             
            {
         | 
| 413 413 | 
             
                const BYTE* const base = ms->window.base;
         | 
| 414 414 | 
             
                U32 const target = (U32)(ip - base);
         | 
| @@ -527,7 +527,7 @@ void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const B | |
| 527 527 | 
             
             */
         | 
| 528 528 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 529 529 | 
             
            size_t ZSTD_dedicatedDictSearch_lazy_search(size_t* offsetPtr, size_t ml, U32 nbAttempts,
         | 
| 530 | 
            -
                                                        const  | 
| 530 | 
            +
                                                        const ZSTD_MatchState_t* const dms,
         | 
| 531 531 | 
             
                                                        const BYTE* const ip, const BYTE* const iLimit,
         | 
| 532 532 | 
             
                                                        const BYTE* const prefixStart, const U32 curr,
         | 
| 533 533 | 
             
                                                        const U32 dictLimit, const size_t ddsIdx) {
         | 
| @@ -630,7 +630,7 @@ size_t ZSTD_dedicatedDictSearch_lazy_search(size_t* offsetPtr, size_t ml, U32 nb | |
| 630 630 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 631 631 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 632 632 | 
             
            U32 ZSTD_insertAndFindFirstIndex_internal(
         | 
| 633 | 
            -
                                     | 
| 633 | 
            +
                                    ZSTD_MatchState_t* ms,
         | 
| 634 634 | 
             
                                    const ZSTD_compressionParameters* const cParams,
         | 
| 635 635 | 
             
                                    const BYTE* ip, U32 const mls, U32 const lazySkipping)
         | 
| 636 636 | 
             
            {
         | 
| @@ -656,7 +656,7 @@ U32 ZSTD_insertAndFindFirstIndex_internal( | |
| 656 656 | 
             
                return hashTable[ZSTD_hashPtr(ip, hashLog, mls)];
         | 
| 657 657 | 
             
            }
         | 
| 658 658 |  | 
| 659 | 
            -
            U32 ZSTD_insertAndFindFirstIndex( | 
| 659 | 
            +
            U32 ZSTD_insertAndFindFirstIndex(ZSTD_MatchState_t* ms, const BYTE* ip) {
         | 
| 660 660 | 
             
                const ZSTD_compressionParameters* const cParams = &ms->cParams;
         | 
| 661 661 | 
             
                return ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, ms->cParams.minMatch, /* lazySkipping*/ 0);
         | 
| 662 662 | 
             
            }
         | 
| @@ -665,7 +665,7 @@ U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip) { | |
| 665 665 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 666 666 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 667 667 | 
             
            size_t ZSTD_HcFindBestMatch(
         | 
| 668 | 
            -
                                     | 
| 668 | 
            +
                                    ZSTD_MatchState_t* ms,
         | 
| 669 669 | 
             
                                    const BYTE* const ip, const BYTE* const iLimit,
         | 
| 670 670 | 
             
                                    size_t* offsetPtr,
         | 
| 671 671 | 
             
                                    const U32 mls, const ZSTD_dictMode_e dictMode)
         | 
| @@ -689,7 +689,7 @@ size_t ZSTD_HcFindBestMatch( | |
| 689 689 | 
             
                U32 nbAttempts = 1U << cParams->searchLog;
         | 
| 690 690 | 
             
                size_t ml=4-1;
         | 
| 691 691 |  | 
| 692 | 
            -
                const  | 
| 692 | 
            +
                const ZSTD_MatchState_t* const dms = ms->dictMatchState;
         | 
| 693 693 | 
             
                const U32 ddsHashLog = dictMode == ZSTD_dedicatedDictSearch
         | 
| 694 694 | 
             
                                     ? dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG : 0;
         | 
| 695 695 | 
             
                const size_t ddsIdx = dictMode == ZSTD_dedicatedDictSearch
         | 
| @@ -834,7 +834,7 @@ FORCE_INLINE_TEMPLATE void ZSTD_row_prefetch(U32 const* hashTable, BYTE const* t | |
| 834 834 | 
             
             */
         | 
| 835 835 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 836 836 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 837 | 
            -
            void ZSTD_row_fillHashCache( | 
| 837 | 
            +
            void ZSTD_row_fillHashCache(ZSTD_MatchState_t* ms, const BYTE* base,
         | 
| 838 838 | 
             
                                               U32 const rowLog, U32 const mls,
         | 
| 839 839 | 
             
                                               U32 idx, const BYTE* const iLimit)
         | 
| 840 840 | 
             
            {
         | 
| @@ -882,7 +882,7 @@ U32 ZSTD_row_nextCachedHash(U32* cache, U32 const* hashTable, | |
| 882 882 | 
             
             */
         | 
| 883 883 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 884 884 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 885 | 
            -
            void ZSTD_row_update_internalImpl( | 
| 885 | 
            +
            void ZSTD_row_update_internalImpl(ZSTD_MatchState_t* ms,
         | 
| 886 886 | 
             
                                              U32 updateStartIdx, U32 const updateEndIdx,
         | 
| 887 887 | 
             
                                              U32 const mls, U32 const rowLog,
         | 
| 888 888 | 
             
                                              U32 const rowMask, U32 const useCache)
         | 
| @@ -913,7 +913,7 @@ void ZSTD_row_update_internalImpl(ZSTD_matchState_t* ms, | |
| 913 913 | 
             
             */
         | 
| 914 914 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 915 915 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 916 | 
            -
            void ZSTD_row_update_internal( | 
| 916 | 
            +
            void ZSTD_row_update_internal(ZSTD_MatchState_t* ms, const BYTE* ip,
         | 
| 917 917 | 
             
                                          U32 const mls, U32 const rowLog,
         | 
| 918 918 | 
             
                                          U32 const rowMask, U32 const useCache)
         | 
| 919 919 | 
             
            {
         | 
| @@ -946,7 +946,7 @@ void ZSTD_row_update_internal(ZSTD_matchState_t* ms, const BYTE* ip, | |
| 946 946 | 
             
             * External wrapper for ZSTD_row_update_internal(). Used for filling the hashtable during dictionary
         | 
| 947 947 | 
             
             * processing.
         | 
| 948 948 | 
             
             */
         | 
| 949 | 
            -
            void ZSTD_row_update( | 
| 949 | 
            +
            void ZSTD_row_update(ZSTD_MatchState_t* const ms, const BYTE* ip) {
         | 
| 950 950 | 
             
                const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6);
         | 
| 951 951 | 
             
                const U32 rowMask = (1u << rowLog) - 1;
         | 
| 952 952 | 
             
                const U32 mls = MIN(ms->cParams.minMatch, 6 /* mls caps out at 6 */);
         | 
| @@ -1123,9 +1123,9 @@ ZSTD_row_getMatchMask(const BYTE* const tagRow, const BYTE tag, const U32 headGr | |
| 1123 1123 |  | 
| 1124 1124 | 
             
            /* The high-level approach of the SIMD row based match finder is as follows:
         | 
| 1125 1125 | 
             
             * - Figure out where to insert the new entry:
         | 
| 1126 | 
            -
             *      - Generate a hash for current input  | 
| 1127 | 
            -
             *           - The hash is salted by a value that changes on every  | 
| 1128 | 
            -
             *             we will avoid collisions that would otherwise slow us down by  | 
| 1126 | 
            +
             *      - Generate a hash for current input position and split it into a one byte of tag and `rowHashLog` bits of index.
         | 
| 1127 | 
            +
             *           - The hash is salted by a value that changes on every context reset, so when the same table is used
         | 
| 1128 | 
            +
             *             we will avoid collisions that would otherwise slow us down by introducing phantom matches.
         | 
| 1129 1129 | 
             
             *      - The hashTable is effectively split into groups or "rows" of 15 or 31 entries of U32, and the index determines
         | 
| 1130 1130 | 
             
             *        which row to insert into.
         | 
| 1131 1131 | 
             
             *      - Determine the correct position within the row to insert the entry into. Each row of 15 or 31 can
         | 
| @@ -1139,7 +1139,7 @@ ZSTD_row_getMatchMask(const BYTE* const tagRow, const BYTE tag, const U32 headGr | |
| 1139 1139 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 1140 1140 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 1141 1141 | 
             
            size_t ZSTD_RowFindBestMatch(
         | 
| 1142 | 
            -
                                     | 
| 1142 | 
            +
                                    ZSTD_MatchState_t* ms,
         | 
| 1143 1143 | 
             
                                    const BYTE* const ip, const BYTE* const iLimit,
         | 
| 1144 1144 | 
             
                                    size_t* offsetPtr,
         | 
| 1145 1145 | 
             
                                    const U32 mls, const ZSTD_dictMode_e dictMode,
         | 
| @@ -1171,7 +1171,7 @@ size_t ZSTD_RowFindBestMatch( | |
| 1171 1171 | 
             
                U32 hash;
         | 
| 1172 1172 |  | 
| 1173 1173 | 
             
                /* DMS/DDS variables that may be referenced laster */
         | 
| 1174 | 
            -
                const  | 
| 1174 | 
            +
                const ZSTD_MatchState_t* const dms = ms->dictMatchState;
         | 
| 1175 1175 |  | 
| 1176 1176 | 
             
                /* Initialize the following variables to satisfy static analyzer */
         | 
| 1177 1177 | 
             
                size_t ddsIdx = 0;
         | 
| @@ -1340,7 +1340,7 @@ size_t ZSTD_RowFindBestMatch( | |
| 1340 1340 | 
             
             * ZSTD_searchMax() dispatches to the correct implementation function.
         | 
| 1341 1341 | 
             
             *
         | 
| 1342 1342 | 
             
             * TODO: The start of the search function involves loading and calculating a
         | 
| 1343 | 
            -
             * bunch of constants from the  | 
| 1343 | 
            +
             * bunch of constants from the ZSTD_MatchState_t. These computations could be
         | 
| 1344 1344 | 
             
             * done in an initialization function, and saved somewhere in the match state.
         | 
| 1345 1345 | 
             
             * Then we could pass a pointer to the saved state instead of the match state,
         | 
| 1346 1346 | 
             
             * and avoid duplicate computations.
         | 
| @@ -1364,7 +1364,7 @@ size_t ZSTD_RowFindBestMatch( | |
| 1364 1364 |  | 
| 1365 1365 | 
             
            #define GEN_ZSTD_BT_SEARCH_FN(dictMode, mls)                                           \
         | 
| 1366 1366 | 
             
                ZSTD_SEARCH_FN_ATTRS size_t ZSTD_BT_SEARCH_FN(dictMode, mls)(                      \
         | 
| 1367 | 
            -
                         | 
| 1367 | 
            +
                        ZSTD_MatchState_t* ms,                                                     \
         | 
| 1368 1368 | 
             
                        const BYTE* ip, const BYTE* const iLimit,                                  \
         | 
| 1369 1369 | 
             
                        size_t* offBasePtr)                                                        \
         | 
| 1370 1370 | 
             
                {                                                                                  \
         | 
| @@ -1374,7 +1374,7 @@ size_t ZSTD_RowFindBestMatch( | |
| 1374 1374 |  | 
| 1375 1375 | 
             
            #define GEN_ZSTD_HC_SEARCH_FN(dictMode, mls)                                          \
         | 
| 1376 1376 | 
             
                ZSTD_SEARCH_FN_ATTRS size_t ZSTD_HC_SEARCH_FN(dictMode, mls)(                     \
         | 
| 1377 | 
            -
                         | 
| 1377 | 
            +
                        ZSTD_MatchState_t* ms,                                                    \
         | 
| 1378 1378 | 
             
                        const BYTE* ip, const BYTE* const iLimit,                                 \
         | 
| 1379 1379 | 
             
                        size_t* offsetPtr)                                                        \
         | 
| 1380 1380 | 
             
                {                                                                                 \
         | 
| @@ -1384,7 +1384,7 @@ size_t ZSTD_RowFindBestMatch( | |
| 1384 1384 |  | 
| 1385 1385 | 
             
            #define GEN_ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)                                          \
         | 
| 1386 1386 | 
             
                ZSTD_SEARCH_FN_ATTRS size_t ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)(                     \
         | 
| 1387 | 
            -
                         | 
| 1387 | 
            +
                        ZSTD_MatchState_t* ms,                                                             \
         | 
| 1388 1388 | 
             
                        const BYTE* ip, const BYTE* const iLimit,                                          \
         | 
| 1389 1389 | 
             
                        size_t* offsetPtr)                                                                 \
         | 
| 1390 1390 | 
             
                {                                                                                          \
         | 
| @@ -1485,7 +1485,7 @@ typedef enum { search_hashChain=0, search_binaryTree=1, search_rowHash=2 } searc | |
| 1485 1485 | 
             
             * If a match is found its offset is stored in @p offsetPtr.
         | 
| 1486 1486 | 
             
             */
         | 
| 1487 1487 | 
             
            FORCE_INLINE_TEMPLATE size_t ZSTD_searchMax(
         | 
| 1488 | 
            -
                 | 
| 1488 | 
            +
                ZSTD_MatchState_t* ms,
         | 
| 1489 1489 | 
             
                const BYTE* ip,
         | 
| 1490 1490 | 
             
                const BYTE* iend,
         | 
| 1491 1491 | 
             
                size_t* offsetPtr,
         | 
| @@ -1514,7 +1514,7 @@ FORCE_INLINE_TEMPLATE size_t ZSTD_searchMax( | |
| 1514 1514 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 1515 1515 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 1516 1516 | 
             
            size_t ZSTD_compressBlock_lazy_generic(
         | 
| 1517 | 
            -
                                     | 
| 1517 | 
            +
                                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore,
         | 
| 1518 1518 | 
             
                                    U32 rep[ZSTD_REP_NUM],
         | 
| 1519 1519 | 
             
                                    const void* src, size_t srcSize,
         | 
| 1520 1520 | 
             
                                    const searchMethod_e searchMethod, const U32 depth,
         | 
| @@ -1537,7 +1537,7 @@ size_t ZSTD_compressBlock_lazy_generic( | |
| 1537 1537 | 
             
                const int isDMS = dictMode == ZSTD_dictMatchState;
         | 
| 1538 1538 | 
             
                const int isDDS = dictMode == ZSTD_dedicatedDictSearch;
         | 
| 1539 1539 | 
             
                const int isDxS = isDMS || isDDS;
         | 
| 1540 | 
            -
                const  | 
| 1540 | 
            +
                const ZSTD_MatchState_t* const dms = ms->dictMatchState;
         | 
| 1541 1541 | 
             
                const U32 dictLowestIndex      = isDxS ? dms->window.dictLimit : 0;
         | 
| 1542 1542 | 
             
                const BYTE* const dictBase     = isDxS ? dms->window.base : NULL;
         | 
| 1543 1543 | 
             
                const BYTE* const dictLowest   = isDxS ? dictBase + dictLowestIndex : NULL;
         | 
| @@ -1590,7 +1590,7 @@ size_t ZSTD_compressBlock_lazy_generic( | |
| 1590 1590 | 
             
                                            && repIndex < prefixLowestIndex) ?
         | 
| 1591 1591 | 
             
                                               dictBase + (repIndex - dictIndexDelta) :
         | 
| 1592 1592 | 
             
                                               base + repIndex;
         | 
| 1593 | 
            -
                        if ((( | 
| 1593 | 
            +
                        if ((ZSTD_index_overlap_check(prefixLowestIndex, repIndex))
         | 
| 1594 1594 | 
             
                            && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) {
         | 
| 1595 1595 | 
             
                            const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend;
         | 
| 1596 1596 | 
             
                            matchLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4;
         | 
| @@ -1642,7 +1642,7 @@ size_t ZSTD_compressBlock_lazy_generic( | |
| 1642 1642 | 
             
                            const BYTE* repMatch = repIndex < prefixLowestIndex ?
         | 
| 1643 1643 | 
             
                                           dictBase + (repIndex - dictIndexDelta) :
         | 
| 1644 1644 | 
             
                                           base + repIndex;
         | 
| 1645 | 
            -
                            if ((( | 
| 1645 | 
            +
                            if ((ZSTD_index_overlap_check(prefixLowestIndex, repIndex))
         | 
| 1646 1646 | 
             
                                && (MEM_read32(repMatch) == MEM_read32(ip)) ) {
         | 
| 1647 1647 | 
             
                                const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend;
         | 
| 1648 1648 | 
             
                                size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4;
         | 
| @@ -1678,7 +1678,7 @@ size_t ZSTD_compressBlock_lazy_generic( | |
| 1678 1678 | 
             
                                const BYTE* repMatch = repIndex < prefixLowestIndex ?
         | 
| 1679 1679 | 
             
                                               dictBase + (repIndex - dictIndexDelta) :
         | 
| 1680 1680 | 
             
                                               base + repIndex;
         | 
| 1681 | 
            -
                                if ((( | 
| 1681 | 
            +
                                if ((ZSTD_index_overlap_check(prefixLowestIndex, repIndex))
         | 
| 1682 1682 | 
             
                                    && (MEM_read32(repMatch) == MEM_read32(ip)) ) {
         | 
| 1683 1683 | 
             
                                    const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend;
         | 
| 1684 1684 | 
             
                                    size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4;
         | 
| @@ -1740,7 +1740,7 @@ _storeSequence: | |
| 1740 1740 | 
             
                            const BYTE* repMatch = repIndex < prefixLowestIndex ?
         | 
| 1741 1741 | 
             
                                    dictBase - dictIndexDelta + repIndex :
         | 
| 1742 1742 | 
             
                                    base + repIndex;
         | 
| 1743 | 
            -
                            if ( (( | 
| 1743 | 
            +
                            if ( (ZSTD_index_overlap_check(prefixLowestIndex, repIndex))
         | 
| 1744 1744 | 
             
                               && (MEM_read32(repMatch) == MEM_read32(ip)) ) {
         | 
| 1745 1745 | 
             
                                const BYTE* const repEnd2 = repIndex < prefixLowestIndex ? dictEnd : iend;
         | 
| 1746 1746 | 
             
                                matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd2, prefixLowest) + 4;
         | 
| @@ -1782,42 +1782,42 @@ _storeSequence: | |
| 1782 1782 |  | 
| 1783 1783 | 
             
            #ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR
         | 
| 1784 1784 | 
             
            size_t ZSTD_compressBlock_greedy(
         | 
| 1785 | 
            -
                     | 
| 1785 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1786 1786 | 
             
                    void const* src, size_t srcSize)
         | 
| 1787 1787 | 
             
            {
         | 
| 1788 1788 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_noDict);
         | 
| 1789 1789 | 
             
            }
         | 
| 1790 1790 |  | 
| 1791 1791 | 
             
            size_t ZSTD_compressBlock_greedy_dictMatchState(
         | 
| 1792 | 
            -
                     | 
| 1792 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1793 1793 | 
             
                    void const* src, size_t srcSize)
         | 
| 1794 1794 | 
             
            {
         | 
| 1795 1795 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dictMatchState);
         | 
| 1796 1796 | 
             
            }
         | 
| 1797 1797 |  | 
| 1798 1798 | 
             
            size_t ZSTD_compressBlock_greedy_dedicatedDictSearch(
         | 
| 1799 | 
            -
                     | 
| 1799 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1800 1800 | 
             
                    void const* src, size_t srcSize)
         | 
| 1801 1801 | 
             
            {
         | 
| 1802 1802 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dedicatedDictSearch);
         | 
| 1803 1803 | 
             
            }
         | 
| 1804 1804 |  | 
| 1805 1805 | 
             
            size_t ZSTD_compressBlock_greedy_row(
         | 
| 1806 | 
            -
                     | 
| 1806 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1807 1807 | 
             
                    void const* src, size_t srcSize)
         | 
| 1808 1808 | 
             
            {
         | 
| 1809 1809 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_noDict);
         | 
| 1810 1810 | 
             
            }
         | 
| 1811 1811 |  | 
| 1812 1812 | 
             
            size_t ZSTD_compressBlock_greedy_dictMatchState_row(
         | 
| 1813 | 
            -
                     | 
| 1813 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1814 1814 | 
             
                    void const* src, size_t srcSize)
         | 
| 1815 1815 | 
             
            {
         | 
| 1816 1816 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dictMatchState);
         | 
| 1817 1817 | 
             
            }
         | 
| 1818 1818 |  | 
| 1819 1819 | 
             
            size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row(
         | 
| 1820 | 
            -
                     | 
| 1820 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1821 1821 | 
             
                    void const* src, size_t srcSize)
         | 
| 1822 1822 | 
             
            {
         | 
| 1823 1823 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dedicatedDictSearch);
         | 
| @@ -1826,42 +1826,42 @@ size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( | |
| 1826 1826 |  | 
| 1827 1827 | 
             
            #ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR
         | 
| 1828 1828 | 
             
            size_t ZSTD_compressBlock_lazy(
         | 
| 1829 | 
            -
                     | 
| 1829 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1830 1830 | 
             
                    void const* src, size_t srcSize)
         | 
| 1831 1831 | 
             
            {
         | 
| 1832 1832 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_noDict);
         | 
| 1833 1833 | 
             
            }
         | 
| 1834 1834 |  | 
| 1835 1835 | 
             
            size_t ZSTD_compressBlock_lazy_dictMatchState(
         | 
| 1836 | 
            -
                     | 
| 1836 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1837 1837 | 
             
                    void const* src, size_t srcSize)
         | 
| 1838 1838 | 
             
            {
         | 
| 1839 1839 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dictMatchState);
         | 
| 1840 1840 | 
             
            }
         | 
| 1841 1841 |  | 
| 1842 1842 | 
             
            size_t ZSTD_compressBlock_lazy_dedicatedDictSearch(
         | 
| 1843 | 
            -
                     | 
| 1843 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1844 1844 | 
             
                    void const* src, size_t srcSize)
         | 
| 1845 1845 | 
             
            {
         | 
| 1846 1846 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dedicatedDictSearch);
         | 
| 1847 1847 | 
             
            }
         | 
| 1848 1848 |  | 
| 1849 1849 | 
             
            size_t ZSTD_compressBlock_lazy_row(
         | 
| 1850 | 
            -
                     | 
| 1850 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1851 1851 | 
             
                    void const* src, size_t srcSize)
         | 
| 1852 1852 | 
             
            {
         | 
| 1853 1853 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_noDict);
         | 
| 1854 1854 | 
             
            }
         | 
| 1855 1855 |  | 
| 1856 1856 | 
             
            size_t ZSTD_compressBlock_lazy_dictMatchState_row(
         | 
| 1857 | 
            -
                     | 
| 1857 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1858 1858 | 
             
                    void const* src, size_t srcSize)
         | 
| 1859 1859 | 
             
            {
         | 
| 1860 1860 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dictMatchState);
         | 
| 1861 1861 | 
             
            }
         | 
| 1862 1862 |  | 
| 1863 1863 | 
             
            size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row(
         | 
| 1864 | 
            -
                     | 
| 1864 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1865 1865 | 
             
                    void const* src, size_t srcSize)
         | 
| 1866 1866 | 
             
            {
         | 
| 1867 1867 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dedicatedDictSearch);
         | 
| @@ -1870,42 +1870,42 @@ size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( | |
| 1870 1870 |  | 
| 1871 1871 | 
             
            #ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR
         | 
| 1872 1872 | 
             
            size_t ZSTD_compressBlock_lazy2(
         | 
| 1873 | 
            -
                     | 
| 1873 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1874 1874 | 
             
                    void const* src, size_t srcSize)
         | 
| 1875 1875 | 
             
            {
         | 
| 1876 1876 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_noDict);
         | 
| 1877 1877 | 
             
            }
         | 
| 1878 1878 |  | 
| 1879 1879 | 
             
            size_t ZSTD_compressBlock_lazy2_dictMatchState(
         | 
| 1880 | 
            -
                     | 
| 1880 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1881 1881 | 
             
                    void const* src, size_t srcSize)
         | 
| 1882 1882 | 
             
            {
         | 
| 1883 1883 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dictMatchState);
         | 
| 1884 1884 | 
             
            }
         | 
| 1885 1885 |  | 
| 1886 1886 | 
             
            size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch(
         | 
| 1887 | 
            -
                     | 
| 1887 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1888 1888 | 
             
                    void const* src, size_t srcSize)
         | 
| 1889 1889 | 
             
            {
         | 
| 1890 1890 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dedicatedDictSearch);
         | 
| 1891 1891 | 
             
            }
         | 
| 1892 1892 |  | 
| 1893 1893 | 
             
            size_t ZSTD_compressBlock_lazy2_row(
         | 
| 1894 | 
            -
                     | 
| 1894 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1895 1895 | 
             
                    void const* src, size_t srcSize)
         | 
| 1896 1896 | 
             
            {
         | 
| 1897 1897 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_noDict);
         | 
| 1898 1898 | 
             
            }
         | 
| 1899 1899 |  | 
| 1900 1900 | 
             
            size_t ZSTD_compressBlock_lazy2_dictMatchState_row(
         | 
| 1901 | 
            -
                     | 
| 1901 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1902 1902 | 
             
                    void const* src, size_t srcSize)
         | 
| 1903 1903 | 
             
            {
         | 
| 1904 1904 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dictMatchState);
         | 
| 1905 1905 | 
             
            }
         | 
| 1906 1906 |  | 
| 1907 1907 | 
             
            size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row(
         | 
| 1908 | 
            -
                     | 
| 1908 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1909 1909 | 
             
                    void const* src, size_t srcSize)
         | 
| 1910 1910 | 
             
            {
         | 
| 1911 1911 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dedicatedDictSearch);
         | 
| @@ -1914,14 +1914,14 @@ size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( | |
| 1914 1914 |  | 
| 1915 1915 | 
             
            #ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR
         | 
| 1916 1916 | 
             
            size_t ZSTD_compressBlock_btlazy2(
         | 
| 1917 | 
            -
                     | 
| 1917 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1918 1918 | 
             
                    void const* src, size_t srcSize)
         | 
| 1919 1919 | 
             
            {
         | 
| 1920 1920 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_noDict);
         | 
| 1921 1921 | 
             
            }
         | 
| 1922 1922 |  | 
| 1923 1923 | 
             
            size_t ZSTD_compressBlock_btlazy2_dictMatchState(
         | 
| 1924 | 
            -
                     | 
| 1924 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 1925 1925 | 
             
                    void const* src, size_t srcSize)
         | 
| 1926 1926 | 
             
            {
         | 
| 1927 1927 | 
             
                return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_dictMatchState);
         | 
| @@ -1935,7 +1935,7 @@ size_t ZSTD_compressBlock_btlazy2_dictMatchState( | |
| 1935 1935 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 1936 1936 | 
             
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 1937 1937 | 
             
            size_t ZSTD_compressBlock_lazy_extDict_generic(
         | 
| 1938 | 
            -
                                     | 
| 1938 | 
            +
                                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore,
         | 
| 1939 1939 | 
             
                                    U32 rep[ZSTD_REP_NUM],
         | 
| 1940 1940 | 
             
                                    const void* src, size_t srcSize,
         | 
| 1941 1941 | 
             
                                    const searchMethod_e searchMethod, const U32 depth)
         | 
| @@ -1986,7 +1986,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( | |
| 1986 1986 | 
             
                        const U32 repIndex = (U32)(curr+1 - offset_1);
         | 
| 1987 1987 | 
             
                        const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
         | 
| 1988 1988 | 
             
                        const BYTE* const repMatch = repBase + repIndex;
         | 
| 1989 | 
            -
                        if ( (( | 
| 1989 | 
            +
                        if ( (ZSTD_index_overlap_check(dictLimit, repIndex))
         | 
| 1990 1990 | 
             
                           & (offset_1 <= curr+1 - windowLow) ) /* note: we are searching at curr+1 */
         | 
| 1991 1991 | 
             
                        if (MEM_read32(ip+1) == MEM_read32(repMatch)) {
         | 
| 1992 1992 | 
             
                            /* repcode detected we should take it */
         | 
| @@ -2027,7 +2027,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( | |
| 2027 2027 | 
             
                            const U32 repIndex = (U32)(curr - offset_1);
         | 
| 2028 2028 | 
             
                            const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
         | 
| 2029 2029 | 
             
                            const BYTE* const repMatch = repBase + repIndex;
         | 
| 2030 | 
            -
                            if ( (( | 
| 2030 | 
            +
                            if ( (ZSTD_index_overlap_check(dictLimit, repIndex))
         | 
| 2031 2031 | 
             
                               & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
         | 
| 2032 2032 | 
             
                            if (MEM_read32(ip) == MEM_read32(repMatch)) {
         | 
| 2033 2033 | 
             
                                /* repcode detected */
         | 
| @@ -2059,7 +2059,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( | |
| 2059 2059 | 
             
                                const U32 repIndex = (U32)(curr - offset_1);
         | 
| 2060 2060 | 
             
                                const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
         | 
| 2061 2061 | 
             
                                const BYTE* const repMatch = repBase + repIndex;
         | 
| 2062 | 
            -
                                if ( (( | 
| 2062 | 
            +
                                if ( (ZSTD_index_overlap_check(dictLimit, repIndex))
         | 
| 2063 2063 | 
             
                                   & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
         | 
| 2064 2064 | 
             
                                if (MEM_read32(ip) == MEM_read32(repMatch)) {
         | 
| 2065 2065 | 
             
                                    /* repcode detected */
         | 
| @@ -2113,7 +2113,7 @@ _storeSequence: | |
| 2113 2113 | 
             
                        const U32 repIndex = repCurrent - offset_2;
         | 
| 2114 2114 | 
             
                        const BYTE* const repBase = repIndex < dictLimit ? dictBase : base;
         | 
| 2115 2115 | 
             
                        const BYTE* const repMatch = repBase + repIndex;
         | 
| 2116 | 
            -
                        if ( (( | 
| 2116 | 
            +
                        if ( (ZSTD_index_overlap_check(dictLimit, repIndex))
         | 
| 2117 2117 | 
             
                           & (offset_2 <= repCurrent - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */
         | 
| 2118 2118 | 
             
                        if (MEM_read32(ip) == MEM_read32(repMatch)) {
         | 
| 2119 2119 | 
             
                            /* repcode detected we should take it */
         | 
| @@ -2139,14 +2139,14 @@ _storeSequence: | |
| 2139 2139 |  | 
| 2140 2140 | 
             
            #ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR
         | 
| 2141 2141 | 
             
            size_t ZSTD_compressBlock_greedy_extDict(
         | 
| 2142 | 
            -
                     | 
| 2142 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2143 2143 | 
             
                    void const* src, size_t srcSize)
         | 
| 2144 2144 | 
             
            {
         | 
| 2145 2145 | 
             
                return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0);
         | 
| 2146 2146 | 
             
            }
         | 
| 2147 2147 |  | 
| 2148 2148 | 
             
            size_t ZSTD_compressBlock_greedy_extDict_row(
         | 
| 2149 | 
            -
                     | 
| 2149 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2150 2150 | 
             
                    void const* src, size_t srcSize)
         | 
| 2151 2151 | 
             
            {
         | 
| 2152 2152 | 
             
                return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0);
         | 
| @@ -2155,7 +2155,7 @@ size_t ZSTD_compressBlock_greedy_extDict_row( | |
| 2155 2155 |  | 
| 2156 2156 | 
             
            #ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR
         | 
| 2157 2157 | 
             
            size_t ZSTD_compressBlock_lazy_extDict(
         | 
| 2158 | 
            -
                     | 
| 2158 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2159 2159 | 
             
                    void const* src, size_t srcSize)
         | 
| 2160 2160 |  | 
| 2161 2161 | 
             
            {
         | 
| @@ -2163,7 +2163,7 @@ size_t ZSTD_compressBlock_lazy_extDict( | |
| 2163 2163 | 
             
            }
         | 
| 2164 2164 |  | 
| 2165 2165 | 
             
            size_t ZSTD_compressBlock_lazy_extDict_row(
         | 
| 2166 | 
            -
                     | 
| 2166 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2167 2167 | 
             
                    void const* src, size_t srcSize)
         | 
| 2168 2168 |  | 
| 2169 2169 | 
             
            {
         | 
| @@ -2173,7 +2173,7 @@ size_t ZSTD_compressBlock_lazy_extDict_row( | |
| 2173 2173 |  | 
| 2174 2174 | 
             
            #ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR
         | 
| 2175 2175 | 
             
            size_t ZSTD_compressBlock_lazy2_extDict(
         | 
| 2176 | 
            -
                     | 
| 2176 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2177 2177 | 
             
                    void const* src, size_t srcSize)
         | 
| 2178 2178 |  | 
| 2179 2179 | 
             
            {
         | 
| @@ -2181,7 +2181,7 @@ size_t ZSTD_compressBlock_lazy2_extDict( | |
| 2181 2181 | 
             
            }
         | 
| 2182 2182 |  | 
| 2183 2183 | 
             
            size_t ZSTD_compressBlock_lazy2_extDict_row(
         | 
| 2184 | 
            -
                     | 
| 2184 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2185 2185 | 
             
                    void const* src, size_t srcSize)
         | 
| 2186 2186 | 
             
            {
         | 
| 2187 2187 | 
             
                return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2);
         | 
| @@ -2190,7 +2190,7 @@ size_t ZSTD_compressBlock_lazy2_extDict_row( | |
| 2190 2190 |  | 
| 2191 2191 | 
             
            #ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR
         | 
| 2192 2192 | 
             
            size_t ZSTD_compressBlock_btlazy2_extDict(
         | 
| 2193 | 
            -
                     | 
| 2193 | 
            +
                    ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 2194 2194 | 
             
                    void const* src, size_t srcSize)
         | 
| 2195 2195 |  | 
| 2196 2196 | 
             
            {
         |