const size_t extra = align_offset - info_size;
// recalculate due to potential guard pages
*psegment_slices = mi_segment_calculate_slices(required + extra, ppre_size, pinfo_slices);
+
+ // mi_page_t.slice_count type is uint32_t
+ if (*psegment_slices > (size_t)UINT32_MAX) return NULL;
}
const size_t segment_size = (*psegment_slices) * MI_SEGMENT_SLICE_SIZE;
size_t pre_size;
size_t segment_slices = mi_segment_calculate_slices(required, &pre_size, &info_slices);
+ // mi_page_t.slice_count type is uint32_t
+ if (segment_slices > (size_t)UINT32_MAX) return NULL;
+
// Commit eagerly only if not the first N lazy segments (to reduce impact of many threads that allocate just a little)
const bool eager_delay = (// !_mi_os_has_overcommit() && // never delay on overcommit systems
_mi_current_thread_count() > 1 && // do not delay for the first N threads