+2000-12-28 Michael Livshin <mlivshin@bigfoot.com>
+
+ * guardians.c (mark_dependencies_in_tconc): new function.
+ (mark_dependencies): bug fix. mark the dependencies of the known
+ zombies, too. duh.
+
2000-12-24 Michael Livshin <mlivshin@bigfoot.com>
* gc.c: (scm_gc_mark_dependencies): use SCM_EQ_P for SCMs, not
}
static void
-mark_dependencies (guardian_t *g)
+mark_dependencies_in_tconc (tconc_t *tc)
{
SCM pair, next_pair;
SCM *prev_ptr;
- /* scan the live list for unmarked objects, and mark their
+ /* scan the list for unmarked objects, and mark their
dependencies */
- for (pair = g->live.head, prev_ptr = &g->live.head;
- ! SCM_EQ_P (pair, g->live.tail);
+ for (pair = tc->head, prev_ptr = &tc->head;
+ ! SCM_EQ_P (pair, tc->tail);
pair = next_pair)
{
SCM obj = SCM_CAR (pair);
}
}
+static void
+mark_dependencies (guardian_t *g)
+{
+ mark_dependencies_in_tconc (&g->zombies);
+ mark_dependencies_in_tconc (&g->live);
+}
+
static void
mark_and_zombify (guardian_t *g)
{