@@ -76,7 +76,7 @@ size_t mi_arena_min_alignment(void) {
76
76
return MI_ARENA_SLICE_ALIGN ;
77
77
}
78
78
79
- static bool mi_arena_commit (mi_arena_t * arena , void * start , size_t size , bool * is_zero , size_t already_committed ) {
79
+ mi_decl_nodiscard static bool mi_arena_commit (mi_arena_t * arena , void * start , size_t size , bool * is_zero , size_t already_committed ) {
80
80
if (arena != NULL && arena -> commit_fun != NULL ) {
81
81
return (* arena -> commit_fun )(true, start , size , is_zero , arena -> commit_fun_arg );
82
82
}
@@ -677,7 +677,10 @@ static mi_page_t* mi_arenas_page_alloc_fresh(size_t slice_count, size_t block_si
677
677
commit_size = _mi_align_up (block_start + block_size , MI_PAGE_MIN_COMMIT_SIZE );
678
678
if (commit_size > page_noguard_size ) { commit_size = page_noguard_size ; }
679
679
bool is_zero ;
680
- mi_arena_commit ( mi_memid_arena (memid ), page , commit_size , & is_zero , 0 );
680
+ if (!mi_arena_commit ( mi_memid_arena (memid ), page , commit_size , & is_zero , 0 )) {
681
+ _mi_arenas_free (page , alloc_size , memid );
682
+ return NULL ;
683
+ }
681
684
if (!memid .initially_zero && !is_zero ) {
682
685
_mi_memzero_aligned (page , commit_size );
683
686
}
0 commit comments