* gc.c (scm_gc_for_newcell): Behave gracefully also if scm_igc
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Thu, 29 Jun 2000 23:46:59 +0000 (23:46 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Thu, 29 Jun 2000 23:46:59 +0000 (23:46 +0000)
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.)

libguile/gc.c

index f400fdf..eca4c2f 100644 (file)
@@ -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)
            {