mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-07 11:58:41 +03:00
refine mi_os_good_alloc_size and use it for huge pages (to ensure realloc is bounded as in #153
This commit is contained in:
parent
d278c26c0e
commit
1909cfb346
4 changed files with 18 additions and 12 deletions
|
@ -727,10 +727,7 @@ void mi_register_deferred_free(mi_deferred_free_fun* fn) mi_attr_noexcept {
|
|||
// just that page, we always treat them as abandoned and any thread
|
||||
// that frees the block can free the whole page and segment directly.
|
||||
static mi_page_t* mi_huge_page_alloc(mi_heap_t* heap, size_t size) {
|
||||
size_t align_size = _mi_os_page_size();
|
||||
if (align_size < (size / 8)) align_size = _mi_align_up(size / 8, align_size);
|
||||
if (align_size > MI_SEGMENT_SIZE) align_size = MI_SEGMENT_SIZE;
|
||||
size_t block_size = _mi_align_up(size, align_size);
|
||||
size_t block_size = _mi_os_good_alloc_size(size);
|
||||
mi_assert_internal(_mi_bin(block_size) == MI_BIN_HUGE);
|
||||
mi_page_t* page = mi_page_fresh_alloc(heap,NULL,block_size);
|
||||
if (page != NULL) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue