zstdlib 0.11.0-x86_64-darwin → 0.13.0-x86_64-darwin
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 +16 -0
- data/Rakefile +1 -1
- data/ext/zstdlib_c/extconf.rb +9 -4
- data/ext/zstdlib_c/ruby/zlib-3.3/zstdlib.c +5090 -0
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/adler32.c +5 -27
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/compress.c +5 -16
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/crc32.c +94 -161
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/deflate.c +362 -434
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/deflate.h +43 -12
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/gzclose.c +1 -3
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/gzguts.h +13 -18
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/gzlib.c +28 -85
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/gzread.c +23 -73
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/gzwrite.c +19 -65
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/infback.c +17 -30
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inffast.c +1 -4
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inffast.h +1 -1
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inflate.c +36 -102
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inftrees.c +6 -11
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inftrees.h +6 -6
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/trees.c +290 -355
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/uncompr.c +4 -12
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/zconf.h +23 -14
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/zlib.h +202 -199
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/zutil.c +18 -44
- data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/zutil.h +13 -33
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/allocations.h +1 -1
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/bitstream.h +49 -29
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/compiler.h +114 -22
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/cpu.h +36 -0
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/debug.c +6 -0
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/debug.h +20 -11
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/error_private.h +45 -36
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/fse.h +3 -2
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/fse_decompress.c +19 -17
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/huf.h +14 -1
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/mem.h +0 -9
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/pool.c +1 -1
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/pool.h +1 -1
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/portability_macros.h +2 -0
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/threading.c +8 -2
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/xxhash.c +5 -11
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/xxhash.h +2341 -1007
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/zstd_internal.h +5 -5
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/fse_compress.c +8 -7
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/huf_compress.c +54 -25
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress.c +282 -161
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_internal.h +29 -27
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_superblock.c +224 -113
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_cwksp.h +19 -13
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_double_fast.c +17 -5
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_double_fast.h +11 -0
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_fast.c +14 -6
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_lazy.c +129 -87
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_lazy.h +103 -28
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_ldm.c +8 -2
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_opt.c +216 -112
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_opt.h +31 -7
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstdmt_compress.c +94 -79
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/huf_decompress.c +188 -126
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/huf_decompress_amd64.S +38 -19
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/zstd_decompress.c +84 -32
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/zstd_decompress_block.c +231 -208
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/zstd_decompress_block.h +1 -1
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/zstd_decompress_internal.h +2 -0
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/zstd.h +129 -60
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/gzclose.c +1 -3
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/gzlib.c +20 -73
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/gzread.c +17 -58
- data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/gzwrite.c +18 -58
- data/lib/2.4/zstdlib_c.bundle +0 -0
- data/lib/2.5/zstdlib_c.bundle +0 -0
- data/lib/2.6/zstdlib_c.bundle +0 -0
- data/lib/2.7/zstdlib_c.bundle +0 -0
- data/lib/3.0/zstdlib_c.bundle +0 -0
- data/lib/3.1/zstdlib_c.bundle +0 -0
- data/lib/3.2/zstdlib_c.bundle +0 -0
- data/lib/3.3/zstdlib_c.bundle +0 -0
- metadata +105 -103
- /data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/crc32.h +0 -0
- /data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inffixed.h +0 -0
- /data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/inflate.h +0 -0
- /data/ext/zstdlib_c/{zlib-1.2.12 → zlib-1.3.1}/trees.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/bits.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/entropy_common.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/error_private.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/threading.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/zstd_common.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/zstd_deps.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/common/zstd_trace.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/clevels.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/hist.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/hist.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_literals.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_literals.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_sequences.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_sequences.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_compress_superblock.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_fast.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_ldm.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstd_ldm_geartab.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/compress/zstdmt_compress.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/zstd_ddict.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/decompress/zstd_ddict.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/zdict.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/lib/zstd_errors.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/gzcompatibility.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/gzguts.h +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/zstd_zlibwrapper.c +0 -0
- /data/ext/zstdlib_c/{zstd-1.5.5 → zstd-1.5.6}/zlibWrapper/zstd_zlibwrapper.h +0 -0
| @@ -192,6 +192,7 @@ MEM_STATIC void ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws) { | |
| 192 192 | 
             
                {
         | 
| 193 193 | 
             
                    intptr_t const offset = __msan_test_shadow(ws->initOnceStart,
         | 
| 194 194 | 
             
                        (U8*)ZSTD_cwksp_initialAllocStart(ws) - (U8*)ws->initOnceStart);
         | 
| 195 | 
            +
                    (void)offset;
         | 
| 195 196 | 
             
            #if defined(ZSTD_MSAN_PRINT)
         | 
| 196 197 | 
             
                    if(offset!=-1) {
         | 
| 197 198 | 
             
                        __msan_print_shadow((U8*)ws->initOnceStart + offset - 8, 32);
         | 
| @@ -433,7 +434,7 @@ MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) | |
| 433 434 |  | 
| 434 435 | 
             
            /**
         | 
| 435 436 | 
             
             * Aligned on 64 bytes. These buffers have the special property that
         | 
| 436 | 
            -
             * their values remain constrained, allowing us to  | 
| 437 | 
            +
             * their values remain constrained, allowing us to reuse them without
         | 
| 437 438 | 
             
             * memset()-ing them.
         | 
| 438 439 | 
             
             */
         | 
| 439 440 | 
             
            MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes)
         | 
| @@ -525,7 +526,7 @@ MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws) | |
| 525 526 | 
             
                DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_dirty");
         | 
| 526 527 |  | 
| 527 528 | 
             
            #if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE)
         | 
| 528 | 
            -
                /* To validate that the table  | 
| 529 | 
            +
                /* To validate that the table reuse logic is sound, and that we don't
         | 
| 529 530 | 
             
                 * access table space that we haven't cleaned, we re-"poison" the table
         | 
| 530 531 | 
             
                 * space every time we mark it dirty.
         | 
| 531 532 | 
             
                 * Since tableValidEnd space and initOnce space may overlap we don't poison
         | 
| @@ -602,9 +603,9 @@ MEM_STATIC void ZSTD_cwksp_clear(ZSTD_cwksp* ws) { | |
| 602 603 | 
             
                DEBUGLOG(4, "cwksp: clearing!");
         | 
| 603 604 |  | 
| 604 605 | 
             
            #if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE)
         | 
| 605 | 
            -
                /* To validate that the context  | 
| 606 | 
            +
                /* To validate that the context reuse logic is sound, and that we don't
         | 
| 606 607 | 
             
                 * access stuff that this compression hasn't initialized, we re-"poison"
         | 
| 607 | 
            -
                 * the workspace except for the areas in which we expect memory  | 
| 608 | 
            +
                 * the workspace except for the areas in which we expect memory reuse
         | 
| 608 609 | 
             
                 * without initialization (objects, valid tables area and init once
         | 
| 609 610 | 
             
                 * memory). */
         | 
| 610 611 | 
             
                {
         | 
| @@ -635,6 +636,15 @@ MEM_STATIC void ZSTD_cwksp_clear(ZSTD_cwksp* ws) { | |
| 635 636 | 
             
                ZSTD_cwksp_assert_internal_consistency(ws);
         | 
| 636 637 | 
             
            }
         | 
| 637 638 |  | 
| 639 | 
            +
            MEM_STATIC size_t ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws) {
         | 
| 640 | 
            +
                return (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->workspace);
         | 
| 641 | 
            +
            }
         | 
| 642 | 
            +
             | 
| 643 | 
            +
            MEM_STATIC size_t ZSTD_cwksp_used(const ZSTD_cwksp* ws) {
         | 
| 644 | 
            +
                return (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->workspace)
         | 
| 645 | 
            +
                     + (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->allocStart);
         | 
| 646 | 
            +
            }
         | 
| 647 | 
            +
             | 
| 638 648 | 
             
            /**
         | 
| 639 649 | 
             
             * The provided workspace takes ownership of the buffer [start, start+size).
         | 
| 640 650 | 
             
             * Any existing values in the workspace are ignored (the previously managed
         | 
| @@ -666,6 +676,11 @@ MEM_STATIC size_t ZSTD_cwksp_create(ZSTD_cwksp* ws, size_t size, ZSTD_customMem | |
| 666 676 | 
             
            MEM_STATIC void ZSTD_cwksp_free(ZSTD_cwksp* ws, ZSTD_customMem customMem) {
         | 
| 667 677 | 
             
                void *ptr = ws->workspace;
         | 
| 668 678 | 
             
                DEBUGLOG(4, "cwksp: freeing workspace");
         | 
| 679 | 
            +
            #if ZSTD_MEMORY_SANITIZER && !defined(ZSTD_MSAN_DONT_POISON_WORKSPACE)
         | 
| 680 | 
            +
                if (ptr != NULL && customMem.customFree != NULL) {
         | 
| 681 | 
            +
                    __msan_unpoison(ptr, ZSTD_cwksp_sizeof(ws));
         | 
| 682 | 
            +
                }
         | 
| 683 | 
            +
            #endif
         | 
| 669 684 | 
             
                ZSTD_memset(ws, 0, sizeof(ZSTD_cwksp));
         | 
| 670 685 | 
             
                ZSTD_customFree(ptr, customMem);
         | 
| 671 686 | 
             
            }
         | 
| @@ -679,15 +694,6 @@ MEM_STATIC void ZSTD_cwksp_move(ZSTD_cwksp* dst, ZSTD_cwksp* src) { | |
| 679 694 | 
             
                ZSTD_memset(src, 0, sizeof(ZSTD_cwksp));
         | 
| 680 695 | 
             
            }
         | 
| 681 696 |  | 
| 682 | 
            -
            MEM_STATIC size_t ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws) {
         | 
| 683 | 
            -
                return (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->workspace);
         | 
| 684 | 
            -
            }
         | 
| 685 | 
            -
             | 
| 686 | 
            -
            MEM_STATIC size_t ZSTD_cwksp_used(const ZSTD_cwksp* ws) {
         | 
| 687 | 
            -
                return (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->workspace)
         | 
| 688 | 
            -
                     + (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->allocStart);
         | 
| 689 | 
            -
            }
         | 
| 690 | 
            -
             | 
| 691 697 | 
             
            MEM_STATIC int ZSTD_cwksp_reserve_failed(const ZSTD_cwksp* ws) {
         | 
| 692 698 | 
             
                return ws->allocFailed;
         | 
| 693 699 | 
             
            }
         | 
| @@ -11,7 +11,11 @@ | |
| 11 11 | 
             
            #include "zstd_compress_internal.h"
         | 
| 12 12 | 
             
            #include "zstd_double_fast.h"
         | 
| 13 13 |  | 
| 14 | 
            -
             | 
| 14 | 
            +
            #ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            static
         | 
| 17 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 18 | 
            +
            void ZSTD_fillDoubleHashTableForCDict(ZSTD_matchState_t* ms,
         | 
| 15 19 | 
             
                                          void const* end, ZSTD_dictTableLoadMethod_e dtlm)
         | 
| 16 20 | 
             
            {
         | 
| 17 21 | 
             
                const ZSTD_compressionParameters* const cParams = &ms->cParams;
         | 
| @@ -47,7 +51,9 @@ static void ZSTD_fillDoubleHashTableForCDict(ZSTD_matchState_t* ms, | |
| 47 51 | 
             
                }   }
         | 
| 48 52 | 
             
            }
         | 
| 49 53 |  | 
| 50 | 
            -
            static | 
| 54 | 
            +
            static
         | 
| 55 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 56 | 
            +
            void ZSTD_fillDoubleHashTableForCCtx(ZSTD_matchState_t* ms,
         | 
| 51 57 | 
             
                                          void const* end, ZSTD_dictTableLoadMethod_e dtlm)
         | 
| 52 58 | 
             
            {
         | 
| 53 59 | 
             
                const ZSTD_compressionParameters* const cParams = &ms->cParams;
         | 
| @@ -95,6 +101,7 @@ void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, | |
| 95 101 |  | 
| 96 102 |  | 
| 97 103 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 104 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 98 105 | 
             
            size_t ZSTD_compressBlock_doubleFast_noDict_generic(
         | 
| 99 106 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 100 107 | 
             
                    void const* src, size_t srcSize, U32 const mls /* template */)
         | 
| @@ -305,6 +312,7 @@ _match_stored: | |
| 305 312 |  | 
| 306 313 |  | 
| 307 314 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 315 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 308 316 | 
             
            size_t ZSTD_compressBlock_doubleFast_dictMatchState_generic(
         | 
| 309 317 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 310 318 | 
             
                    void const* src, size_t srcSize,
         | 
| @@ -348,8 +356,8 @@ size_t ZSTD_compressBlock_doubleFast_dictMatchState_generic( | |
| 348 356 | 
             
                if (ms->prefetchCDictTables) {
         | 
| 349 357 | 
             
                    size_t const hashTableBytes = (((size_t)1) << dictCParams->hashLog) * sizeof(U32);
         | 
| 350 358 | 
             
                    size_t const chainTableBytes = (((size_t)1) << dictCParams->chainLog) * sizeof(U32);
         | 
| 351 | 
            -
                    PREFETCH_AREA(dictHashLong, hashTableBytes)
         | 
| 352 | 
            -
                    PREFETCH_AREA(dictHashSmall, chainTableBytes)
         | 
| 359 | 
            +
                    PREFETCH_AREA(dictHashLong, hashTableBytes);
         | 
| 360 | 
            +
                    PREFETCH_AREA(dictHashSmall, chainTableBytes);
         | 
| 353 361 | 
             
                }
         | 
| 354 362 |  | 
| 355 363 | 
             
                /* init */
         | 
| @@ -589,7 +597,9 @@ size_t ZSTD_compressBlock_doubleFast_dictMatchState( | |
| 589 597 | 
             
            }
         | 
| 590 598 |  | 
| 591 599 |  | 
| 592 | 
            -
            static | 
| 600 | 
            +
            static
         | 
| 601 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 602 | 
            +
            size_t ZSTD_compressBlock_doubleFast_extDict_generic(
         | 
| 593 603 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 594 604 | 
             
                    void const* src, size_t srcSize,
         | 
| 595 605 | 
             
                    U32 const mls /* template */)
         | 
| @@ -756,3 +766,5 @@ size_t ZSTD_compressBlock_doubleFast_extDict( | |
| 756 766 | 
             
                    return ZSTD_compressBlock_doubleFast_extDict_7(ms, seqStore, rep, src, srcSize);
         | 
| 757 767 | 
             
                }
         | 
| 758 768 | 
             
            }
         | 
| 769 | 
            +
             | 
| 770 | 
            +
            #endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */
         | 
| @@ -18,9 +18,12 @@ extern "C" { | |
| 18 18 | 
             
            #include "../common/mem.h"      /* U32 */
         | 
| 19 19 | 
             
            #include "zstd_compress_internal.h"     /* ZSTD_CCtx, size_t */
         | 
| 20 20 |  | 
| 21 | 
            +
            #ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR
         | 
| 22 | 
            +
             | 
| 21 23 | 
             
            void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms,
         | 
| 22 24 | 
             
                                          void const* end, ZSTD_dictTableLoadMethod_e dtlm,
         | 
| 23 25 | 
             
                                          ZSTD_tableFillPurpose_e tfp);
         | 
| 26 | 
            +
             | 
| 24 27 | 
             
            size_t ZSTD_compressBlock_doubleFast(
         | 
| 25 28 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 26 29 | 
             
                    void const* src, size_t srcSize);
         | 
| @@ -31,6 +34,14 @@ size_t ZSTD_compressBlock_doubleFast_extDict( | |
| 31 34 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 32 35 | 
             
                    void const* src, size_t srcSize);
         | 
| 33 36 |  | 
| 37 | 
            +
            #define ZSTD_COMPRESSBLOCK_DOUBLEFAST ZSTD_compressBlock_doubleFast
         | 
| 38 | 
            +
            #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE ZSTD_compressBlock_doubleFast_dictMatchState
         | 
| 39 | 
            +
            #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT ZSTD_compressBlock_doubleFast_extDict
         | 
| 40 | 
            +
            #else
         | 
| 41 | 
            +
            #define ZSTD_COMPRESSBLOCK_DOUBLEFAST NULL
         | 
| 42 | 
            +
            #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE NULL
         | 
| 43 | 
            +
            #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT NULL
         | 
| 44 | 
            +
            #endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */
         | 
| 34 45 |  | 
| 35 46 | 
             
            #if defined (__cplusplus)
         | 
| 36 47 | 
             
            }
         | 
| @@ -11,7 +11,9 @@ | |
| 11 11 | 
             
            #include "zstd_compress_internal.h"  /* ZSTD_hashPtr, ZSTD_count, ZSTD_storeSeq */
         | 
| 12 12 | 
             
            #include "zstd_fast.h"
         | 
| 13 13 |  | 
| 14 | 
            -
            static | 
| 14 | 
            +
            static
         | 
| 15 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 16 | 
            +
            void ZSTD_fillHashTableForCDict(ZSTD_matchState_t* ms,
         | 
| 15 17 | 
             
                                    const void* const end,
         | 
| 16 18 | 
             
                                    ZSTD_dictTableLoadMethod_e dtlm)
         | 
| 17 19 | 
             
            {
         | 
| @@ -46,7 +48,9 @@ static void ZSTD_fillHashTableForCDict(ZSTD_matchState_t* ms, | |
| 46 48 | 
             
                            }   }   }   }
         | 
| 47 49 | 
             
            }
         | 
| 48 50 |  | 
| 49 | 
            -
            static | 
| 51 | 
            +
            static
         | 
| 52 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 53 | 
            +
            void ZSTD_fillHashTableForCCtx(ZSTD_matchState_t* ms,
         | 
| 50 54 | 
             
                                    const void* const end,
         | 
| 51 55 | 
             
                                    ZSTD_dictTableLoadMethod_e dtlm)
         | 
| 52 56 | 
             
            {
         | 
| @@ -139,8 +143,9 @@ void ZSTD_fillHashTable(ZSTD_matchState_t* ms, | |
| 139 143 | 
             
             *
         | 
| 140 144 | 
             
             * This is also the work we do at the beginning to enter the loop initially.
         | 
| 141 145 | 
             
             */
         | 
| 142 | 
            -
            FORCE_INLINE_TEMPLATE | 
| 143 | 
            -
             | 
| 146 | 
            +
            FORCE_INLINE_TEMPLATE
         | 
| 147 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 148 | 
            +
            size_t ZSTD_compressBlock_fast_noDict_generic(
         | 
| 144 149 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 145 150 | 
             
                    void const* src, size_t srcSize,
         | 
| 146 151 | 
             
                    U32 const mls, U32 const hasStep)
         | 
| @@ -456,6 +461,7 @@ size_t ZSTD_compressBlock_fast( | |
| 456 461 | 
             
            }
         | 
| 457 462 |  | 
| 458 463 | 
             
            FORCE_INLINE_TEMPLATE
         | 
| 464 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 459 465 | 
             
            size_t ZSTD_compressBlock_fast_dictMatchState_generic(
         | 
| 460 466 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 461 467 | 
             
                    void const* src, size_t srcSize, U32 const mls, U32 const hasStep)
         | 
| @@ -502,7 +508,7 @@ size_t ZSTD_compressBlock_fast_dictMatchState_generic( | |
| 502 508 |  | 
| 503 509 | 
             
                if (ms->prefetchCDictTables) {
         | 
| 504 510 | 
             
                    size_t const hashTableBytes = (((size_t)1) << dictCParams->hashLog) * sizeof(U32);
         | 
| 505 | 
            -
                    PREFETCH_AREA(dictHashTable, hashTableBytes)
         | 
| 511 | 
            +
                    PREFETCH_AREA(dictHashTable, hashTableBytes);
         | 
| 506 512 | 
             
                }
         | 
| 507 513 |  | 
| 508 514 | 
             
                /* init */
         | 
| @@ -681,7 +687,9 @@ size_t ZSTD_compressBlock_fast_dictMatchState( | |
| 681 687 | 
             
            }
         | 
| 682 688 |  | 
| 683 689 |  | 
| 684 | 
            -
            static | 
| 690 | 
            +
            static
         | 
| 691 | 
            +
            ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
         | 
| 692 | 
            +
            size_t ZSTD_compressBlock_fast_extDict_generic(
         | 
| 685 693 | 
             
                    ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
         | 
| 686 694 | 
             
                    void const* src, size_t srcSize, U32 const mls, U32 const hasStep)
         | 
| 687 695 | 
             
            {
         |