From 1e393751ba7363de3c6b76be6ffd277b5f6fdb54 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 6 Jul 2011 20:23:42 +0000 Subject: [PATCH] MemoryManager::_GetChunks(): Fixed incorrect check. The area structure offset introduced in r37701 was not taken into account for computing the short meta chunk size. Fixes the reopened #6237. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42385 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/slab/MemoryManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/slab/MemoryManager.cpp b/src/system/kernel/slab/MemoryManager.cpp index 748532f153..b59a2a82a4 100644 --- a/src/system/kernel/slab/MemoryManager.cpp +++ b/src/system/kernel/slab/MemoryManager.cpp @@ -952,8 +952,10 @@ MemoryManager::_GetChunks(MetaChunkList* metaChunkList, size_t chunkSize, if (metaChunk == NULL) { // try to get a free meta chunk - if ((SLAB_CHUNK_SIZE_LARGE - kAreaAdminSize) / chunkSize >= chunkCount) + if ((SLAB_CHUNK_SIZE_LARGE - SLAB_AREA_STRUCT_OFFSET - kAreaAdminSize) + / chunkSize >= chunkCount) { metaChunk = sFreeShortMetaChunks.RemoveHead(); + } if (metaChunk == NULL) metaChunk = sFreeCompleteMetaChunks.RemoveHead();