diff --git a/src/system/kernel/heap.cpp b/src/system/kernel/heap.cpp index 8dd693ccd4..42ff5a0354 100644 --- a/src/system/kernel/heap.cpp +++ b/src/system/kernel/heap.cpp @@ -1618,6 +1618,7 @@ heap_free(heap_allocator *heap, void *address) area = heap->areas; while (area != NULL && heap->empty_areas > 1) { + heap_area *next = area->next; if (area->area >= 0 && area->free_page_count == area->page_count && heap_remove_area(heap, area) == B_OK) { @@ -1625,7 +1626,7 @@ heap_free(heap_allocator *heap, void *address) heap->empty_areas--; } - area = area->next; + area = next; } }