summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2000-01-11 15:19:14 +0000
committerDamien Doligez <damien.doligez-inria.fr>2000-01-11 15:19:14 +0000
commit117525ed94a7cb45fbf464284eb133655be0e0a3 (patch)
tree15b1fc05cb4dc8caa1f62be712fd638e22ed00a5
parentfea43448370f262da4a848a9002668bb72b84565 (diff)
on appelle toutes les fonctions des que possible
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2751 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--byterun/finalise.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/byterun/finalise.c b/byterun/finalise.c
index 62139e207..9f96a3069 100644
--- a/byterun/finalise.c
+++ b/byterun/finalise.c
@@ -40,6 +40,7 @@ static unsigned long old = 0, young = 0, active = 0, size = 0;
void final_update (void)
{
unsigned long i;
+ unsigned long oldactive = active;
Assert (young == old);
Assert (young <= active);
@@ -47,13 +48,13 @@ void final_update (void)
Assert (Is_block (final_table[i].val) && Is_in_heap (final_table[i].val));
if (Is_white_val (final_table[i].val)){
struct final f = final_table[i];
- darken (f.val, NULL);
final_table[i] = final_table[--old];
final_table[--active] = f;
-- i;
}
}
young = old;
+ for (i = active; i < oldactive; i++) darken (final_table[i].val, NULL);
}
/* Call the finalisation functions for the finalising set.