From: simonmar@microsoft.com Date: Tue, 20 Nov 2007 13:38:35 +0000 (+0000) Subject: fix boundary bugs in a couple of for-loops X-Git-Tag: Before_cabalised-GHC~286 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=e13661a0c6359d7507f3683df123f8dfd776b719 fix boundary bugs in a couple of for-loops --- diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c index 17e519d..3f68efb 100644 --- a/rts/sm/Scav.c +++ b/rts/sm/Scav.c @@ -1409,8 +1409,8 @@ scavenge_find_global_work (void) step_workspace *ws; flag = rtsFalse; - for (g = RtsFlags.GcFlags.generations; --g >= 0; ) { - for (s = generations[g].n_steps; --s >= 0; ) { + for (g = RtsFlags.GcFlags.generations-1; g >= 0; g--) { + for (s = generations[g].n_steps-1; s >= 0; s--) { if (g == 0 && s == 0 && RtsFlags.GcFlags.generations > 1) { continue; } @@ -1568,8 +1568,8 @@ any_work (void) // Check for global work in any step. We don't need to check for // local work, because we have already exited scavenge_loop(), // which means there is no local work for this thread. - for (g = RtsFlags.GcFlags.generations; --g >= 0; ) { - for (s = generations[g].n_steps; --s >= 0; ) { + for (g = RtsFlags.GcFlags.generations-1; g >= 0; g--) { + for (s = generations[g].n_steps-1; s >= 0; s--) { if (g == 0 && s == 0 && RtsFlags.GcFlags.generations > 1) { continue; }