mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
* guardians.c (mark_dependencies_in_tconc): new function.
(mark_dependencies): bug fix. mark the dependencies of the known zombies, too. duh.
This commit is contained in:
parent
0209177b77
commit
c275ccf59e
2 changed files with 17 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2000-12-24 Michael Livshin <mlivshin@bigfoot.com>
|
||||||
|
|
||||||
* gc.c: (scm_gc_mark_dependencies): use SCM_EQ_P for SCMs, not
|
* gc.c: (scm_gc_mark_dependencies): use SCM_EQ_P for SCMs, not
|
||||||
|
|
|
@ -320,15 +320,15 @@ guardian_gc_init (void *dummy1, void *dummy2, void *dummy3)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mark_dependencies (guardian_t *g)
|
mark_dependencies_in_tconc (tconc_t *tc)
|
||||||
{
|
{
|
||||||
SCM pair, next_pair;
|
SCM pair, next_pair;
|
||||||
SCM *prev_ptr;
|
SCM *prev_ptr;
|
||||||
|
|
||||||
/* scan the live list for unmarked objects, and mark their
|
/* scan the list for unmarked objects, and mark their
|
||||||
dependencies */
|
dependencies */
|
||||||
for (pair = g->live.head, prev_ptr = &g->live.head;
|
for (pair = tc->head, prev_ptr = &tc->head;
|
||||||
! SCM_EQ_P (pair, g->live.tail);
|
! SCM_EQ_P (pair, tc->tail);
|
||||||
pair = next_pair)
|
pair = next_pair)
|
||||||
{
|
{
|
||||||
SCM obj = SCM_CAR (pair);
|
SCM obj = SCM_CAR (pair);
|
||||||
|
@ -363,6 +363,13 @@ mark_dependencies (guardian_t *g)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mark_dependencies (guardian_t *g)
|
||||||
|
{
|
||||||
|
mark_dependencies_in_tconc (&g->zombies);
|
||||||
|
mark_dependencies_in_tconc (&g->live);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mark_and_zombify (guardian_t *g)
|
mark_and_zombify (guardian_t *g)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue