MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / mi_page_is_valid_init

Function mi_page_is_valid_init

3rd/mimalloc-2.0.9/src/page.c:72–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72static bool mi_page_is_valid_init(mi_page_t* page) {
73 mi_assert_internal(page->xblock_size > 0);
74 mi_assert_internal(page->used <= page->capacity);
75 mi_assert_internal(page->capacity <= page->reserved);
76
77 mi_segment_t* segment = _mi_page_segment(page);
78 uint8_t* start = _mi_page_start(segment,page,NULL);
79 mi_assert_internal(start == _mi_segment_page_start(segment,page,NULL));
80 //const size_t bsize = mi_page_block_size(page);
81 //mi_assert_internal(start + page->capacity*page->block_size == page->top);
82
83 mi_assert_internal(mi_page_list_is_valid(page,page->free));
84 mi_assert_internal(mi_page_list_is_valid(page,page->local_free));
85
86 #if MI_DEBUG>3 // generally too expensive to check this
87 if (page->is_zero) {
88 const size_t ubsize = mi_page_usable_block_size(page);
89 for(mi_block_t* block = page->free; block != NULL; block = mi_block_next(page,block)) {
90 mi_assert_expensive(mi_mem_is_zero(block + 1, ubsize - sizeof(mi_block_t)));
91 }
92 }
93 #endif
94
95 mi_block_t* tfree = mi_page_thread_free(page);
96 mi_assert_internal(mi_page_list_is_valid(page, tfree));
97 //size_t tfree_count = mi_page_list_count(page, tfree);
98 //mi_assert_internal(tfree_count <= page->thread_freed + 1);
99
100 size_t free_count = mi_page_list_count(page, page->free) + mi_page_list_count(page, page->local_free);
101 mi_assert_internal(page->used + free_count == page->capacity);
102
103 return true;
104}
105
106bool _mi_page_is_valid(mi_page_t* page) {
107 mi_assert_internal(mi_page_is_valid_init(page));

Callers 4

_mi_page_is_validFunction · 0.85
_mi_page_reclaimFunction · 0.85
mi_page_extend_freeFunction · 0.85
mi_page_initFunction · 0.85

Calls 9

_mi_page_segmentFunction · 0.85
_mi_page_startFunction · 0.85
_mi_segment_page_startFunction · 0.85
mi_page_list_is_validFunction · 0.85
mi_block_nextFunction · 0.85
mi_mem_is_zeroFunction · 0.85
mi_page_thread_freeFunction · 0.85
mi_page_list_countFunction · 0.85

Tested by

no test coverage detected