From ad6f48f3e4b85d0f8a0f3de1a4ba2aeb9db8adb5 Mon Sep 17 00:00:00 2001 From: daanx Date: Tue, 24 Dec 2024 15:00:05 -0800 Subject: [PATCH] fix assertion for huge pages --- src/page-queue.c | 4 ++-- src/page.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/page-queue.c b/src/page-queue.c index 9e3aaacc..128ae8e3 100644 --- a/src/page-queue.c +++ b/src/page-queue.c @@ -156,7 +156,7 @@ static mi_page_queue_t* mi_heap_page_queue_of(mi_heap_t* heap, const mi_page_t* static mi_page_queue_t* mi_page_queue_of(const mi_page_t* page) { mi_heap_t* heap = mi_page_heap(page); mi_page_queue_t* pq = mi_heap_page_queue_of(heap, page); - mi_assert_expensive(mi_page_queue_contains(pq, page)); + mi_assert_expensive(mi_page_is_huge(page) || mi_page_queue_contains(pq, page)); return pq; } @@ -210,7 +210,7 @@ static bool mi_page_queue_is_empty(mi_page_queue_t* queue) { static void mi_page_queue_remove(mi_page_queue_t* queue, mi_page_t* page) { mi_assert_internal(page != NULL); - mi_assert_expensive(mi_page_queue_contains(queue, page)); + mi_assert_expensive(mi_page_is_huge(page) || mi_page_queue_contains(queue, page)); mi_assert_internal(mi_page_block_size(page) == queue->block_size || (mi_page_is_huge(page) && mi_page_queue_is_huge(queue)) || (mi_page_is_in_full(page) && mi_page_queue_is_full(queue))); diff --git a/src/page.c b/src/page.c index aba548e9..1e15644e 100644 --- a/src/page.c +++ b/src/page.c @@ -123,7 +123,7 @@ bool _mi_page_is_valid(mi_page_t* page) { //mi_assert_internal(!_mi_process_is_initialized); { mi_page_queue_t* pq = mi_page_queue_of(page); - mi_assert_internal(mi_page_queue_contains(pq, page)); + mi_assert_internal(mi_page_is_huge(page) || mi_page_queue_contains(pq, page)); mi_assert_internal(pq->block_size==mi_page_block_size(page) || mi_page_is_huge(page) || mi_page_is_in_full(page)); // mi_assert_internal(mi_heap_contains_queue(mi_page_heap(page),pq)); } @@ -298,7 +298,7 @@ static mi_page_t* mi_page_fresh(mi_heap_t* heap, mi_page_queue_t* pq) { mi_page_t* page = mi_page_fresh_alloc(heap, pq, pq->block_size, 0); if (page==NULL) return NULL; mi_assert_internal(pq->block_size==mi_page_block_size(page)); - mi_assert_internal(pq==mi_heap_page_queue_of(heap, page)); + mi_assert_internal(mi_page_is_huge(page) || pq==mi_heap_page_queue_of(heap, page)); return page; }