From 3da88370694c0fa84cb7e31c70bb23042d3fe265 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 19 Jan 2010 20:36:06 +0000 Subject: [PATCH] * Fixed build with PARANOID_HEAP_VALIDATION. * heap_index_for(): Could return invalid index, if there hadn't been created a set of heaps for each CPU. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35179 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/heap.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/system/kernel/heap.cpp b/src/system/kernel/heap.cpp index ddd0a5c807..47356b9de8 100644 --- a/src/system/kernel/heap.cpp +++ b/src/system/kernel/heap.cpp @@ -1808,7 +1808,7 @@ heap_index_for(size_t size, int32 cpu) break; } - return index + cpu * HEAP_CLASS_COUNT; + return (index + cpu * HEAP_CLASS_COUNT) % sHeapCount; } @@ -2110,6 +2110,10 @@ memalign(size_t alignment, size_t size) shouldGrow = heap_should_grow(heap); break; } + +#if PARANOID_HEAP_VALIDATION + heap_validate_heap(heap); +#endif } if (result == NULL) { @@ -2128,10 +2132,6 @@ memalign(size_t alignment, size_t size) release_sem_etc(sHeapGrowSem, 1, B_DO_NOT_RESCHEDULE); } -#if PARANOID_HEAP_VALIDATION - heap_validate_heap(heap); -#endif - if (result == NULL) panic("heap: kernel heap has run out of memory\n"); return result;