mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-05 23:19:31 +03:00
fix tests
This commit is contained in:
parent
886fd7d1b8
commit
05a75758dd
2 changed files with 14 additions and 14 deletions
18
src/alloc.c
18
src/alloc.c
|
@ -41,22 +41,17 @@ extern inline void* _mi_page_malloc(mi_heap_t* heap, mi_page_t* page, size_t siz
|
||||||
// allow use of the block internally
|
// allow use of the block internally
|
||||||
// note: when tracking we need to avoid ever touching the MI_PADDING since
|
// note: when tracking we need to avoid ever touching the MI_PADDING since
|
||||||
// that is tracked by valgrind etc. as non-accessible (through the red-zone, see `mimalloc-track.h`)
|
// that is tracked by valgrind etc. as non-accessible (through the red-zone, see `mimalloc-track.h`)
|
||||||
#if MI_TRACK_ENABLED
|
mi_track_mem_undefined(block, mi_page_usable_block_size(page));
|
||||||
const size_t track_bsize = mi_page_block_size(page);
|
|
||||||
mi_assert_internal(track_bsize >= size && track_bsize >= MI_PADDING_SIZE);
|
|
||||||
mi_track_mem_undefined(block,track_bsize - MI_PADDING_SIZE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// zero the block? note: we need to zero the full block size (issue #63)
|
// zero the block? note: we need to zero the full block size (issue #63)
|
||||||
if mi_unlikely(zero) {
|
if mi_unlikely(zero) {
|
||||||
mi_assert_internal(page->xblock_size != 0); // do not call with zero'ing for huge blocks (see _mi_malloc_generic)
|
mi_assert_internal(page->xblock_size != 0); // do not call with zero'ing for huge blocks (see _mi_malloc_generic)
|
||||||
const size_t zsize = (page->is_zero ? sizeof(block->next) + MI_PADDING_SIZE : page->xblock_size);
|
const size_t zsize = (page->is_zero ? sizeof(block->next) + MI_PADDING_SIZE : page->xblock_size);
|
||||||
mi_assert(zsize <= track_bsize && zsize >= MI_PADDING_SIZE);
|
|
||||||
_mi_memzero_aligned(block, zsize - MI_PADDING_SIZE);
|
_mi_memzero_aligned(block, zsize - MI_PADDING_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (MI_DEBUG>0)
|
#if (MI_DEBUG>0) && !MI_TRACK_ENABLED
|
||||||
if (!page->is_zero && !zero) { memset(block, MI_DEBUG_UNINIT, size - MI_PADDING_SIZE); }
|
if (!page->is_zero && !zero) { memset(block, MI_DEBUG_UNINIT, mi_page_usable_block_size(page)); }
|
||||||
#elif (MI_SECURE!=0)
|
#elif (MI_SECURE!=0)
|
||||||
if (!zero) { block->next = 0; } // don't leak internal data
|
if (!zero) { block->next = 0; } // don't leak internal data
|
||||||
#endif
|
#endif
|
||||||
|
@ -87,11 +82,6 @@ extern inline void* _mi_page_malloc(mi_heap_t* heap, mi_page_t* page, size_t siz
|
||||||
for (size_t i = 0; i < maxpad; i++) { fill[i] = MI_DEBUG_PADDING; }
|
for (size_t i = 0; i < maxpad; i++) { fill[i] = MI_DEBUG_PADDING; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// mark as no-access again
|
|
||||||
// mi_track_mem_noaccess(block, track_bsize);
|
|
||||||
// mi_track_resize(block,track_bsize,size - MI_PADDING_SIZE);
|
|
||||||
// mi_track_free(block);
|
|
||||||
//mi_track_malloc(block,size - MI_PADDING_SIZE,zero);
|
|
||||||
return block;
|
return block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -309,6 +309,10 @@ bool check_zero_init(uint8_t* p, size_t size) {
|
||||||
|
|
||||||
#if MI_DEBUG >= 2
|
#if MI_DEBUG >= 2
|
||||||
bool check_debug_fill_uninit(uint8_t* p, size_t size) {
|
bool check_debug_fill_uninit(uint8_t* p, size_t size) {
|
||||||
|
#if MI_VALGRIND
|
||||||
|
(void)p; (void)size;
|
||||||
|
return true; // when compiled with valgrind we don't init on purpose
|
||||||
|
#else
|
||||||
if(!p)
|
if(!p)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -317,9 +321,14 @@ bool check_debug_fill_uninit(uint8_t* p, size_t size) {
|
||||||
result &= p[i] == MI_DEBUG_UNINIT;
|
result &= p[i] == MI_DEBUG_UNINIT;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_debug_fill_freed(uint8_t* p, size_t size) {
|
bool check_debug_fill_freed(uint8_t* p, size_t size) {
|
||||||
|
#if MI_VALGRIND
|
||||||
|
(void)p; (void)size;
|
||||||
|
return true; // when compiled with valgrind we don't fill on purpose
|
||||||
|
#else
|
||||||
if(!p)
|
if(!p)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -328,5 +337,6 @@ bool check_debug_fill_freed(uint8_t* p, size_t size) {
|
||||||
result &= p[i] == MI_DEBUG_FREED;
|
result &= p[i] == MI_DEBUG_FREED;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue