sanity: fix places where we weren't filling fresh memory with 0xaa
[ghc-hetmet.git] / rts / sm / BlockAlloc.c
index 8eaba72..429ebd0 100644 (file)
@@ -333,6 +333,7 @@ allocGroup (nat n)
         // only the bdescrs of the first MB are required to be initialised
         initGroup(bd);
 
+        IF_DEBUG(sanity,memset(bd->start, 0xaa, bd->blocks * BLOCK_SIZE));
         IF_DEBUG(sanity, checkFreeListSanity());
         return bd;
     }
@@ -382,6 +383,7 @@ allocGroup (nat n)
         barf("allocGroup: free list corrupted");
     }
     initGroup(bd);             // initialise it
+    IF_DEBUG(sanity,memset(bd->start, 0xaa, bd->blocks * BLOCK_SIZE));
     IF_DEBUG(sanity, checkFreeListSanity());
     ASSERT(bd->blocks == n);
     return bd;
@@ -697,6 +699,8 @@ void returnMemoryToOS(nat n /* megablocks */)
     }
     free_mblock_list = bd;
 
+    osReleaseFreeMemory();
+
     IF_DEBUG(gc,
         if (n != 0) {
             debugBelch("Wanted to free %d more MBlocks than are freeable\n",