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

Function mi_page_queue_remove

3rd/mimalloc-2.0.9/src/page-queue.c:206–226  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

204*/
205
206static void mi_page_queue_remove(mi_page_queue_t* queue, mi_page_t* page) {
207 mi_assert_internal(page != NULL);
208 mi_assert_expensive(mi_page_queue_contains(queue, page));
209 mi_assert_internal(page->xblock_size == queue->block_size || (page->xblock_size > MI_MEDIUM_OBJ_SIZE_MAX && mi_page_queue_is_huge(queue)) || (mi_page_is_in_full(page) && mi_page_queue_is_full(queue)));
210 mi_heap_t* heap = mi_page_heap(page);
211
212 if (page->prev != NULL) page->prev->next = page->next;
213 if (page->next != NULL) page->next->prev = page->prev;
214 if (page == queue->last) queue->last = page->prev;
215 if (page == queue->first) {
216 queue->first = page->next;
217 // update first
218 mi_assert_internal(mi_heap_contains_queue(heap, queue));
219 mi_heap_queue_first_update(heap,queue);
220 }
221 heap->page_count--;
222 page->next = NULL;
223 page->prev = NULL;
224 // mi_atomic_store_ptr_release(mi_atomic_cast(void*, &page->heap), NULL);
225 mi_page_set_in_full(page,false);
226}
227
228
229static void mi_page_queue_push(mi_heap_t* heap, mi_page_queue_t* queue, mi_page_t* page) {

Callers 2

_mi_page_abandonFunction · 0.85
_mi_page_freeFunction · 0.85

Calls 8

mi_page_queue_containsFunction · 0.85
mi_page_queue_is_hugeFunction · 0.85
mi_page_is_in_fullFunction · 0.85
mi_page_queue_is_fullFunction · 0.85
mi_page_heapFunction · 0.85
mi_heap_contains_queueFunction · 0.85
mi_page_set_in_fullFunction · 0.85

Tested by

no test coverage detected