diff --git a/src/page.c b/src/page.c index 9d919cfa..ba0d9a4d 100644 --- a/src/page.c +++ b/src/page.c @@ -274,7 +274,7 @@ static mi_page_t* mi_page_fresh(mi_heap_t* heap, mi_page_queue_t* pq) { void _mi_heap_delayed_free(mi_heap_t* heap) { // take over the list (note: no atomic exchange since it is often NULL) mi_block_t* block = mi_atomic_load_ptr_relaxed(mi_block_t, &heap->thread_delayed_free); - while (block != NULL && !mi_atomic_cas_ptr_weak_acq_rel(mi_block_t, &heap->thread_delayed_free, &block, NULL)) { /* nothing */ }; + while (block != NULL && !mi_atomic_cas_ptr_weak_acq_rel(mi_block_t, &heap->thread_delayed_free, (void**)&block, NULL)) { /* nothing */ }; // and free them all while(block != NULL) { diff --git a/src/segment.c b/src/segment.c index c9fb364e..74d3a46d 100644 --- a/src/segment.c +++ b/src/segment.c @@ -921,7 +921,7 @@ static bool mi_abandoned_visited_revisit(void) if (mi_atomic_load_ptr_relaxed(mi_segment_t, &abandoned_visited) == NULL) return false; // grab the whole visited list - mi_segment_t* first = mi_atomic_exchange_ptr_acq_rel(mi_segment_t, &abandoned_visited, NULL); + mi_segment_t* first = (mi_segment_t*)mi_atomic_exchange_ptr_acq_rel(mi_segment_t, &abandoned_visited, NULL); if (first == NULL) return false; // first try to swap directly if the abandoned list happens to be NULL