allocatePinned(): fix n_large_blocks count after allocating a new block
[ghc-hetmet.git] / rts / sm / Storage.c
index b7028d5..c02adf9 100644 (file)
@@ -763,6 +763,7 @@ allocatePinned( nat n )
     if (bd == NULL || (bd->free + n) > (bd->start + BLOCK_SIZE_W)) {
        pinned_object_block = bd = allocBlock();
        dbl_link_onto(bd, &g0s0->large_objects);
+       g0s0->n_large_blocks++;
        bd->gen_no = 0;
        bd->step   = g0s0;
        bd->flags  = BF_PINNED | BF_LARGE;
@@ -1148,7 +1149,7 @@ memInventory(void)
   // count the blocks containing executable memory
   exec_blocks = 0;
   for (bd = exec_block; bd; bd = bd->link) {
-      exec_blocks = bd->blocks;
+      exec_blocks += bd->blocks;
   }
 
   /* count the blocks on the free list */