summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>2000-06-29 23:46:59 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>2000-06-29 23:46:59 +0000
commit83d58c82570e93dc15dc381e58bedbea6c9badfb (patch)
treeb36bd32d15f739f264ce021d4758bd9a37d97b85
parent2500356c67755723d802538e8938b30019f64163 (diff)
downloadguile-83d58c82570e93dc15dc381e58bedbea6c9badfb.tar.gz
* gc.c (scm_gc_for_newcell): Behave gracefully also if scm_igc
doesn't yield any new cells. In theory this could happen if all cells allocated with NEWCELL are either in use or conservatively marked and all cluster spine cells are conservatively marked. (Thanks to Dirk.)
-rw-r--r--libguile/gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index f400fdf39..eca4c2f4e 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -698,7 +698,7 @@ scm_gc_for_newcell (scm_freelist_t *master, SCM *freelist)
++scm_ints_disabled;
do
{
- if (SCM_NULLP (master->clusters))
+ while (SCM_NULLP (master->clusters))
{
if (master->grow_heap_p || scm_block_gc)
{