mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-05 06:59:32 +03:00
fix assertion in mi_block_zero_init (issue #194)
This commit is contained in:
parent
dc58388968
commit
41e717c2e0
2 changed files with 5 additions and 2 deletions
|
@ -92,9 +92,9 @@ extern inline mi_decl_allocator void* mi_malloc(size_t size) mi_attr_noexcept {
|
||||||
void _mi_block_zero_init(const mi_page_t* page, void* p, size_t size) {
|
void _mi_block_zero_init(const mi_page_t* page, void* p, size_t size) {
|
||||||
// note: we need to initialize the whole block to zero, not just size
|
// note: we need to initialize the whole block to zero, not just size
|
||||||
// or the recalloc/rezalloc functions cannot safely expand in place (see issue #63)
|
// or the recalloc/rezalloc functions cannot safely expand in place (see issue #63)
|
||||||
UNUSED(size);
|
UNUSED_RELEASE(size);
|
||||||
mi_assert_internal(p != NULL);
|
mi_assert_internal(p != NULL);
|
||||||
mi_assert_internal(size > 0 && mi_page_block_size(page) >= size);
|
mi_assert_internal(size >= 0 && mi_page_block_size(page) >= size);
|
||||||
mi_assert_internal(_mi_ptr_page(p)==page);
|
mi_assert_internal(_mi_ptr_page(p)==page);
|
||||||
if (page->is_zero) {
|
if (page->is_zero) {
|
||||||
// already zero initialized memory?
|
// already zero initialized memory?
|
||||||
|
|
|
@ -92,6 +92,9 @@ int main() {
|
||||||
// use (size_t)&mi_calloc to get some number without triggering compiler warnings
|
// use (size_t)&mi_calloc to get some number without triggering compiler warnings
|
||||||
result = (mi_calloc((size_t)&mi_calloc,SIZE_MAX/1000) == NULL);
|
result = (mi_calloc((size_t)&mi_calloc,SIZE_MAX/1000) == NULL);
|
||||||
});
|
});
|
||||||
|
CHECK_BODY("calloc0",{
|
||||||
|
result = (mi_usable_size(mi_calloc(0,1000)) >= 0);
|
||||||
|
});
|
||||||
|
|
||||||
// ---------------------------------------------------
|
// ---------------------------------------------------
|
||||||
// Extended
|
// Extended
|
||||||
|
|
Loading…
Add table
Reference in a new issue