Stop Allocating Extra Space for Table Redzones
This commit is contained in:
parent
a07037b784
commit
0ffae7e440
@ -1077,9 +1077,9 @@ ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams,
|
|||||||
size_t const hSize = ((size_t)1) << cParams->hashLog;
|
size_t const hSize = ((size_t)1) << cParams->hashLog;
|
||||||
U32 const hashLog3 = (forCCtx && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0;
|
U32 const hashLog3 = (forCCtx && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0;
|
||||||
size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0;
|
size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0;
|
||||||
size_t const tableSpace = ZSTD_cwksp_alloc_size(chainSize * sizeof(U32))
|
size_t const tableSpace = chainSize * sizeof(U32)
|
||||||
+ ZSTD_cwksp_alloc_size(hSize * sizeof(U32))
|
+ hSize * sizeof(U32)
|
||||||
+ ZSTD_cwksp_alloc_size(h3Size * sizeof(U32));
|
+ h3Size * sizeof(U32);
|
||||||
size_t const optPotentialSpace =
|
size_t const optPotentialSpace =
|
||||||
ZSTD_cwksp_alloc_size((MaxML+1) * sizeof(U32))
|
ZSTD_cwksp_alloc_size((MaxML+1) * sizeof(U32))
|
||||||
+ ZSTD_cwksp_alloc_size((MaxLL+1) * sizeof(U32))
|
+ ZSTD_cwksp_alloc_size((MaxLL+1) * sizeof(U32))
|
||||||
|
@ -182,6 +182,10 @@ MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t const align) {
|
|||||||
* allocate this object. (Normally it should be exactly the size of the object,
|
* allocate this object. (Normally it should be exactly the size of the object,
|
||||||
* but under special conditions, like ASAN, where we pad each object, it might
|
* but under special conditions, like ASAN, where we pad each object, it might
|
||||||
* be larger.)
|
* be larger.)
|
||||||
|
*
|
||||||
|
* Since tables aren't currently redzoned, you don't need to call through this
|
||||||
|
* to figure out how much space you need for the matchState tables. Everything
|
||||||
|
* else is though.
|
||||||
*/
|
*/
|
||||||
MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) {
|
MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) {
|
||||||
#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE)
|
#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user