fix assertion in mi_block_zero_init (issue #194)

This commit is contained in:
daan 2020-01-18 20:30:12 -08:00
parent dc58388968
commit 41e717c2e0
2 changed files with 5 additions and 2 deletions

View file

@ -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) {
// 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)
UNUSED(size);
UNUSED_RELEASE(size);
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);
if (page->is_zero) {
// already zero initialized memory?

View file

@ -92,6 +92,9 @@ int main() {
// use (size_t)&mi_calloc to get some number without triggering compiler warnings
result = (mi_calloc((size_t)&mi_calloc,SIZE_MAX/1000) == NULL);
});
CHECK_BODY("calloc0",{
result = (mi_usable_size(mi_calloc(0,1000)) >= 0);
});
// ---------------------------------------------------
// Extended