>Sorry, I suspect it might have to return Qtrue also when >freelist is non-null already, if the above description is >correct. > > >Index: gc.c >=================================================================== >RCS file: /src/ruby/gc.c,v >retrieving revision 1.214 >diff -u -w -b -p -r1.214 gc.c >--- gc.c 18 Oct 2005 17:35:18 -0000 1.214 >+++ gc.c 25 Oct 2005 04:17:13 -0000 >@@ -1280,10 +1280,9 @@ garbage_collect(void) > if (dont_gc || during_gc) { > if (!freelist) { > add_heap(); > } >- return Qfalse; >+ return Qtrue; > } >- if (during_gc) return Qfalse; > during_gc++; > > init_mark_stack(); > > >-- Sorry, I have fixed.