mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-05 15:09:31 +03:00
wrap MI_SECURE conditional in #ifdef to avoid warnings (issue #311)
This commit is contained in:
parent
ead1f34930
commit
5d2b925f3e
2 changed files with 11 additions and 6 deletions
|
@ -705,14 +705,17 @@ static inline mi_page_t* mi_find_free_page(mi_heap_t* heap, size_t size) {
|
||||||
mi_page_queue_t* pq = mi_page_queue(heap,size);
|
mi_page_queue_t* pq = mi_page_queue(heap,size);
|
||||||
mi_page_t* page = pq->first;
|
mi_page_t* page = pq->first;
|
||||||
if (page != NULL) {
|
if (page != NULL) {
|
||||||
if ((MI_SECURE >= 3) && page->capacity < page->reserved && ((_mi_heap_random_next(heap) & 1) == 1)) {
|
#if (MI_SECURE>=3) // in secure mode, we extend half the time to increase randomness
|
||||||
// in secure mode, we extend half the time to increase randomness
|
if (page->capacity < page->reserved && ((_mi_heap_random_next(heap) & 1) == 1)) {
|
||||||
mi_page_extend_free(heap, page, heap->tld);
|
mi_page_extend_free(heap, page, heap->tld);
|
||||||
mi_assert_internal(mi_page_immediate_available(page));
|
mi_assert_internal(mi_page_immediate_available(page));
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
_mi_page_free_collect(page,false);
|
_mi_page_free_collect(page,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mi_page_immediate_available(page)) {
|
if (mi_page_immediate_available(page)) {
|
||||||
page->retire_expire = 0;
|
page->retire_expire = 0;
|
||||||
return page; // fast path
|
return page; // fast path
|
||||||
|
|
|
@ -385,11 +385,13 @@ static uint8_t* mi_segment_raw_page_start(const mi_segment_t* segment, const mi_
|
||||||
psize -= segment->segment_info_size;
|
psize -= segment->segment_info_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MI_SECURE > 1 || (MI_SECURE == 1 && page->segment_idx == segment->capacity - 1)) {
|
#if (MI_SECURE > 1) // every page has an os guard page
|
||||||
// secure == 1: the last page has an os guard page at the end
|
psize -= _mi_os_page_size();
|
||||||
// secure > 1: every page has an os guard page
|
#elif (MI_SECURE==1) // the last page has an os guard page at the end
|
||||||
|
if (page->segment_idx == segment->capacity - 1) {
|
||||||
psize -= _mi_os_page_size();
|
psize -= _mi_os_page_size();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (page_size != NULL) *page_size = psize;
|
if (page_size != NULL) *page_size = psize;
|
||||||
mi_assert_internal(page->xblock_size == 0 || _mi_ptr_page(p) == page);
|
mi_assert_internal(page->xblock_size == 0 || _mi_ptr_page(p) == page);
|
||||||
|
|
Loading…
Add table
Reference in a new issue