From da3412492addfd95c3fe45cf351e307ef322dcfa Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Sun, 6 Sep 2009 05:04:55 +0000 Subject: [PATCH] When we actually delete the area, we can obviously not access the next pointer stored in there anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32951 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/heap.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; } }