[haiku-commits] r37703 - haiku/trunk/src/system/kernel/slab

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 22 Jul 2010 22:47:12 +0200 (CEST)

Author: bonefish
Date: 2010-07-22 22:47:12 +0200 (Thu, 22 Jul 2010)
New Revision: 37703
Changeset: http://dev.haiku-os.org/changeset/37703

Modified:
   haiku/trunk/src/system/kernel/slab/MemoryManager.cpp
Log:
Free(), FreeRawOrReturnCache(), GetAllocationInfo(), CacheForAddress(): Check
Assert that the meta chunk the given address lies in is actually in use.


Modified: haiku/trunk/src/system/kernel/slab/MemoryManager.cpp
===================================================================
--- haiku/trunk/src/system/kernel/slab/MemoryManager.cpp        2010-07-22 
20:41:58 UTC (rev 37702)
+++ haiku/trunk/src/system/kernel/slab/MemoryManager.cpp        2010-07-22 
20:47:12 UTC (rev 37703)
@@ -570,6 +570,7 @@
        MetaChunk* metaChunk = &area->metaChunks[
                ((addr_t)pages % SLAB_AREA_SIZE) / SLAB_CHUNK_SIZE_LARGE];
 
+       ASSERT(metaChunk->chunkSize > 0);
        ASSERT((addr_t)pages >= metaChunk->chunkBase);
        ASSERT(((addr_t)pages % metaChunk->chunkSize) == 0);
 
@@ -696,6 +697,7 @@
                ((addr_t)pages % SLAB_AREA_SIZE) / SLAB_CHUNK_SIZE_LARGE];
 
        // get the chunk
+       ASSERT(metaChunk->chunkSize > 0);
        ASSERT((addr_t)pages >= metaChunk->chunkBase);
        uint16 chunkIndex = _ChunkIndexForAddress(metaChunk, (addr_t)pages);
        Chunk* chunk = &metaChunk->chunks[chunkIndex];
@@ -760,6 +762,7 @@
                ((addr_t)address % SLAB_AREA_SIZE) / SLAB_CHUNK_SIZE_LARGE];
 
        // get the chunk
+       ASSERT(metaChunk->chunkSize > 0);
        ASSERT((addr_t)address >= metaChunk->chunkBase);
        uint16 chunkIndex = _ChunkIndexForAddress(metaChunk, (addr_t)address);
 
@@ -790,6 +793,7 @@
                ((addr_t)address % SLAB_AREA_SIZE) / SLAB_CHUNK_SIZE_LARGE];
 
        // get the chunk
+       ASSERT(metaChunk->chunkSize > 0);
        ASSERT((addr_t)address >= metaChunk->chunkBase);
        uint16 chunkIndex = _ChunkIndexForAddress(metaChunk, (addr_t)address);
 


Other related posts:

  • » [haiku-commits] r37703 - haiku/trunk/src/system/kernel/slab - ingo_weinhold