zstdlib 0.8.0-x64-mingw32 → 0.9.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 +10 -0
- data/README.md +7 -1
- data/Rakefile +38 -8
- data/ext/{zstdlib → zstdlib_c}/extconf.rb +10 -5
- 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 → zstdlib_c}/ruby/zlib-3.0/zstdlib.c +2 -2
- data/ext/zstdlib_c/ruby/zlib-3.1/zstdlib.c +5076 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/adler32.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/compress.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/crc32.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/crc32.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/deflate.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/deflate.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/gzclose.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/gzguts.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/gzlib.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/gzread.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/gzwrite.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/infback.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inffast.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inffast.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inffixed.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inflate.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inflate.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inftrees.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/inftrees.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/trees.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/trees.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/uncompr.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/zconf.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/zlib.h +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/zutil.c +0 -0
- data/ext/{zstdlib → zstdlib_c}/zlib-1.2.11/zutil.h +0 -0
- 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.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/bitstream.h +24 -9
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/compiler.h +89 -43
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/cpu.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/debug.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/debug.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/entropy_common.c +11 -5
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/error_private.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/error_private.h +79 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/fse.h +2 -1
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/fse_decompress.c +1 -1
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/huf.h +24 -22
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/mem.h +18 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/pool.c +11 -6
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/pool.h +2 -2
- data/ext/zstdlib_c/zstd-1.5.2/lib/common/portability_macros.h +137 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/threading.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → 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.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/zstd_common.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/zstd_deps.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/zstd_internal.h +95 -92
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/common/zstd_trace.h +12 -3
- data/ext/zstdlib_c/zstd-1.5.2/lib/compress/clevels.h +134 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/fse_compress.c +63 -27
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/hist.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/hist.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/huf_compress.c +537 -104
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress.c +307 -373
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_internal.h +174 -83
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_literals.c +4 -3
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_literals.h +3 -1
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_sequences.c +15 -14
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_sequences.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_superblock.c +4 -3
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_compress_superblock.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_cwksp.h +41 -27
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_double_fast.c +295 -120
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_double_fast.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_fast.c +309 -130
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_fast.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_lazy.c +482 -562
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_lazy.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_ldm.c +9 -7
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_ldm.h +1 -1
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_ldm_geartab.h +4 -1
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_opt.c +249 -148
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstd_opt.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstdmt_compress.c +76 -38
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/compress/zstdmt_compress.h +4 -1
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/huf_decompress.c +727 -189
- data/ext/zstdlib_c/zstd-1.5.2/lib/decompress/huf_decompress_amd64.S +585 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_ddict.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_ddict.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress.c +85 -22
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_block.c +744 -220
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_block.h +8 -2
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/decompress/zstd_decompress_internal.h +34 -3
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/zdict.h +4 -4
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/zstd.h +179 -136
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/lib/zstd_errors.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzclose.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzcompatibility.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzguts.h +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzlib.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzread.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/gzwrite.c +0 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/zstd_zlibwrapper.c +7 -0
- data/ext/{zstdlib/zstd-1.5.0 → zstdlib_c/zstd-1.5.2}/zlibWrapper/zstd_zlibwrapper.h +0 -0
- 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 -121
- data/ext/zstdlib/zstd-1.5.0/lib/common/xxhash.c +0 -824
- data/ext/zstdlib/zstd-1.5.0/lib/common/xxhash.h +0 -285
- 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
| @@ -219,7 +219,7 @@ MEM_STATIC size_t ZSTD_cwksp_aligned_alloc_size(size_t size) { | |
| 219 219 | 
             
            MEM_STATIC size_t ZSTD_cwksp_slack_space_required(void) {
         | 
| 220 220 | 
             
                /* For alignment, the wksp will always allocate an additional n_1=[1, 64] bytes
         | 
| 221 221 | 
             
                 * to align the beginning of tables section, as well as another n_2=[0, 63] bytes
         | 
| 222 | 
            -
                 * to align the beginning of the aligned  | 
| 222 | 
            +
                 * to align the beginning of the aligned section.
         | 
| 223 223 | 
             
                 *
         | 
| 224 224 | 
             
                 * n_1 + n_2 == 64 bytes if the cwksp is freshly allocated, due to tables and
         | 
| 225 225 | 
             
                 * aligneds being sized in multiples of 64 bytes.
         | 
| @@ -243,12 +243,14 @@ MEM_STATIC size_t ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignByt | |
| 243 243 |  | 
| 244 244 | 
             
            /**
         | 
| 245 245 | 
             
             * Internal function. Do not use directly.
         | 
| 246 | 
            -
             * Reserves the given number of bytes within the aligned/buffer segment of the wksp, | 
| 247 | 
            -
             * counts from the end of the wksp | 
| 246 | 
            +
             * Reserves the given number of bytes within the aligned/buffer segment of the wksp,
         | 
| 247 | 
            +
             * which counts from the end of the wksp (as opposed to the object/table segment).
         | 
| 248 248 | 
             
             *
         | 
| 249 249 | 
             
             * Returns a pointer to the beginning of that space.
         | 
| 250 250 | 
             
             */
         | 
| 251 | 
            -
            MEM_STATIC void* | 
| 251 | 
            +
            MEM_STATIC void*
         | 
| 252 | 
            +
            ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t const bytes)
         | 
| 253 | 
            +
            {
         | 
| 252 254 | 
             
                void* const alloc = (BYTE*)ws->allocStart - bytes;
         | 
| 253 255 | 
             
                void* const bottom = ws->tableEnd;
         | 
| 254 256 | 
             
                DEBUGLOG(5, "cwksp: reserving %p %zd bytes, %zd bytes remaining",
         | 
| @@ -260,6 +262,8 @@ MEM_STATIC void* ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t | |
| 260 262 | 
             
                    ws->allocFailed = 1;
         | 
| 261 263 | 
             
                    return NULL;
         | 
| 262 264 | 
             
                }
         | 
| 265 | 
            +
                /* the area is reserved from the end of wksp.
         | 
| 266 | 
            +
                 * If it overlaps with tableValidEnd, it voids guarantees on values' range */
         | 
| 263 267 | 
             
                if (alloc < ws->tableValidEnd) {
         | 
| 264 268 | 
             
                    ws->tableValidEnd = alloc;
         | 
| 265 269 | 
             
                }
         | 
| @@ -269,10 +273,12 @@ MEM_STATIC void* ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t | |
| 269 273 |  | 
| 270 274 | 
             
            /**
         | 
| 271 275 | 
             
             * Moves the cwksp to the next phase, and does any necessary allocations.
         | 
| 276 | 
            +
             * cwksp initialization must necessarily go through each phase in order.
         | 
| 272 277 | 
             
             * Returns a 0 on success, or zstd error
         | 
| 273 278 | 
             
             */
         | 
| 274 | 
            -
            MEM_STATIC size_t | 
| 275 | 
            -
             | 
| 279 | 
            +
            MEM_STATIC size_t
         | 
| 280 | 
            +
            ZSTD_cwksp_internal_advance_phase(ZSTD_cwksp* ws, ZSTD_cwksp_alloc_phase_e phase)
         | 
| 281 | 
            +
            {
         | 
| 276 282 | 
             
                assert(phase >= ws->phase);
         | 
| 277 283 | 
             
                if (phase > ws->phase) {
         | 
| 278 284 | 
             
                    /* Going from allocating objects to allocating buffers */
         | 
| @@ -295,15 +301,15 @@ MEM_STATIC size_t ZSTD_cwksp_internal_advance_phase( | |
| 295 301 | 
             
                        {   /* Align the start of the tables to 64 bytes. Use [0, 63] bytes */
         | 
| 296 302 | 
             
                            void* const alloc = ws->objectEnd;
         | 
| 297 303 | 
             
                            size_t const bytesToAlign = ZSTD_cwksp_bytes_to_align_ptr(alloc, ZSTD_CWKSP_ALIGNMENT_BYTES);
         | 
| 298 | 
            -
                            void* const  | 
| 304 | 
            +
                            void* const objectEnd = (BYTE*)alloc + bytesToAlign;
         | 
| 299 305 | 
             
                            DEBUGLOG(5, "reserving table alignment addtl space: %zu", bytesToAlign);
         | 
| 300 | 
            -
                            RETURN_ERROR_IF( | 
| 306 | 
            +
                            RETURN_ERROR_IF(objectEnd > ws->workspaceEnd, memory_allocation,
         | 
| 301 307 | 
             
                                            "table phase - alignment initial allocation failed!");
         | 
| 302 | 
            -
                            ws->objectEnd =  | 
| 303 | 
            -
                            ws->tableEnd =  | 
| 304 | 
            -
                            ws->tableValidEnd  | 
| 305 | 
            -
             | 
| 306 | 
            -
                    }
         | 
| 308 | 
            +
                            ws->objectEnd = objectEnd;
         | 
| 309 | 
            +
                            ws->tableEnd = objectEnd;  /* table area starts being empty */
         | 
| 310 | 
            +
                            if (ws->tableValidEnd < ws->tableEnd) {
         | 
| 311 | 
            +
                                ws->tableValidEnd = ws->tableEnd;
         | 
| 312 | 
            +
                    }   }   }
         | 
| 307 313 | 
             
                    ws->phase = phase;
         | 
| 308 314 | 
             
                    ZSTD_cwksp_assert_internal_consistency(ws);
         | 
| 309 315 | 
             
                }
         | 
| @@ -313,15 +319,17 @@ MEM_STATIC size_t ZSTD_cwksp_internal_advance_phase( | |
| 313 319 | 
             
            /**
         | 
| 314 320 | 
             
             * Returns whether this object/buffer/etc was allocated in this workspace.
         | 
| 315 321 | 
             
             */
         | 
| 316 | 
            -
            MEM_STATIC int ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void* ptr) | 
| 322 | 
            +
            MEM_STATIC int ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void* ptr)
         | 
| 323 | 
            +
            {
         | 
| 317 324 | 
             
                return (ptr != NULL) && (ws->workspace <= ptr) && (ptr <= ws->workspaceEnd);
         | 
| 318 325 | 
             
            }
         | 
| 319 326 |  | 
| 320 327 | 
             
            /**
         | 
| 321 328 | 
             
             * Internal function. Do not use directly.
         | 
| 322 329 | 
             
             */
         | 
| 323 | 
            -
            MEM_STATIC void* | 
| 324 | 
            -
             | 
| 330 | 
            +
            MEM_STATIC void*
         | 
| 331 | 
            +
            ZSTD_cwksp_reserve_internal(ZSTD_cwksp* ws, size_t bytes, ZSTD_cwksp_alloc_phase_e phase)
         | 
| 332 | 
            +
            {
         | 
| 325 333 | 
             
                void* alloc;
         | 
| 326 334 | 
             
                if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase)) || bytes == 0) {
         | 
| 327 335 | 
             
                    return NULL;
         | 
| @@ -351,14 +359,16 @@ MEM_STATIC void* ZSTD_cwksp_reserve_internal( | |
| 351 359 | 
             
            /**
         | 
| 352 360 | 
             
             * Reserves and returns unaligned memory.
         | 
| 353 361 | 
             
             */
         | 
| 354 | 
            -
            MEM_STATIC BYTE* ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes) | 
| 362 | 
            +
            MEM_STATIC BYTE* ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes)
         | 
| 363 | 
            +
            {
         | 
| 355 364 | 
             
                return (BYTE*)ZSTD_cwksp_reserve_internal(ws, bytes, ZSTD_cwksp_alloc_buffers);
         | 
| 356 365 | 
             
            }
         | 
| 357 366 |  | 
| 358 367 | 
             
            /**
         | 
| 359 368 | 
             
             * Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes).
         | 
| 360 369 | 
             
             */
         | 
| 361 | 
            -
            MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) | 
| 370 | 
            +
            MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes)
         | 
| 371 | 
            +
            {
         | 
| 362 372 | 
             
                void* ptr = ZSTD_cwksp_reserve_internal(ws, ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES),
         | 
| 363 373 | 
             
                                                        ZSTD_cwksp_alloc_aligned);
         | 
| 364 374 | 
             
                assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0);
         | 
| @@ -370,7 +380,8 @@ MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) { | |
| 370 380 | 
             
             * their values remain constrained, allowing us to re-use them without
         | 
| 371 381 | 
             
             * memset()-ing them.
         | 
| 372 382 | 
             
             */
         | 
| 373 | 
            -
            MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) | 
| 383 | 
            +
            MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes)
         | 
| 384 | 
            +
            {
         | 
| 374 385 | 
             
                const ZSTD_cwksp_alloc_phase_e phase = ZSTD_cwksp_alloc_aligned;
         | 
| 375 386 | 
             
                void* alloc;
         | 
| 376 387 | 
             
                void* end;
         | 
| @@ -408,9 +419,11 @@ MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) { | |
| 408 419 |  | 
| 409 420 | 
             
            /**
         | 
| 410 421 | 
             
             * Aligned on sizeof(void*).
         | 
| 422 | 
            +
             * Note : should happen only once, at workspace first initialization
         | 
| 411 423 | 
             
             */
         | 
| 412 | 
            -
            MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) | 
| 413 | 
            -
             | 
| 424 | 
            +
            MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes)
         | 
| 425 | 
            +
            {
         | 
| 426 | 
            +
                size_t const roundedBytes = ZSTD_cwksp_align(bytes, sizeof(void*));
         | 
| 414 427 | 
             
                void* alloc = ws->objectEnd;
         | 
| 415 428 | 
             
                void* end = (BYTE*)alloc + roundedBytes;
         | 
| 416 429 |  | 
| @@ -419,15 +432,15 @@ MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) { | |
| 419 432 | 
             
                end = (BYTE *)end + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE;
         | 
| 420 433 | 
             
            #endif
         | 
| 421 434 |  | 
| 422 | 
            -
                DEBUGLOG( | 
| 435 | 
            +
                DEBUGLOG(4,
         | 
| 423 436 | 
             
                    "cwksp: reserving %p object %zd bytes (rounded to %zd), %zd bytes remaining",
         | 
| 424 437 | 
             
                    alloc, bytes, roundedBytes, ZSTD_cwksp_available_space(ws) - roundedBytes);
         | 
| 425 | 
            -
                assert(( | 
| 426 | 
            -
                assert( | 
| 438 | 
            +
                assert((size_t)alloc % ZSTD_ALIGNOF(void*) == 0);
         | 
| 439 | 
            +
                assert(bytes % ZSTD_ALIGNOF(void*) == 0);
         | 
| 427 440 | 
             
                ZSTD_cwksp_assert_internal_consistency(ws);
         | 
| 428 441 | 
             
                /* we must be in the first phase, no advance is possible */
         | 
| 429 442 | 
             
                if (ws->phase != ZSTD_cwksp_alloc_objects || end > ws->workspaceEnd) {
         | 
| 430 | 
            -
                    DEBUGLOG( | 
| 443 | 
            +
                    DEBUGLOG(3, "cwksp: object alloc failed!");
         | 
| 431 444 | 
             
                    ws->allocFailed = 1;
         | 
| 432 445 | 
             
                    return NULL;
         | 
| 433 446 | 
             
                }
         | 
| @@ -438,7 +451,7 @@ MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) { | |
| 438 451 | 
             
            #if ZSTD_ADDRESS_SANITIZER && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE)
         | 
| 439 452 | 
             
                /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on
         | 
| 440 453 | 
             
                 * either size. */
         | 
| 441 | 
            -
                alloc = (BYTE | 
| 454 | 
            +
                alloc = (BYTE*)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE;
         | 
| 442 455 | 
             
                if (ws->isStatic == ZSTD_cwksp_dynamic_alloc) {
         | 
| 443 456 | 
             
                    __asan_unpoison_memory_region(alloc, bytes);
         | 
| 444 457 | 
             
                }
         | 
| @@ -447,7 +460,8 @@ MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) { | |
| 447 460 | 
             
                return alloc;
         | 
| 448 461 | 
             
            }
         | 
| 449 462 |  | 
| 450 | 
            -
            MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws) | 
| 463 | 
            +
            MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws)
         | 
| 464 | 
            +
            {
         | 
| 451 465 | 
             
                DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_dirty");
         | 
| 452 466 |  | 
| 453 467 | 
             
            #if ZSTD_MEMORY_SANITIZER && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE)
         |