From faafd34db3f4306b9165d99676f4680dd85b96d4 Mon Sep 17 00:00:00 2001 From: "simonmar@microsoft.com" Date: Wed, 30 Jan 2008 15:07:30 +0000 Subject: [PATCH] calcNeeded: fix the calculation, we weren't counting G0 step 1 --- rts/sm/Storage.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rts/sm/Storage.c b/rts/sm/Storage.c index 0bc15c0..8b3839f 100644 --- a/rts/sm/Storage.c +++ b/rts/sm/Storage.c @@ -999,10 +999,11 @@ calcNeeded(void) for (s = 0; s < generations[g].n_steps; s++) { if (g == 0 && s == 0) { continue; } stp = &generations[g].steps[s]; - if (generations[g].steps[0].n_blocks + - generations[g].steps[0].n_large_blocks - > generations[g].max_blocks - && stp->is_compacted == 0) { + if (g == 0 || // always collect gen 0 + (generations[g].steps[0].n_blocks + + generations[g].steps[0].n_large_blocks + > generations[g].max_blocks + && stp->is_compacted == 0)) { needed += 2 * stp->n_blocks + stp->n_large_blocks; } else { needed += stp->n_blocks + stp->n_large_blocks; -- 1.7.10.4