From 77e876615da5f1482b225bd4f754b9fefcd52cec Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 27 Jul 2000 09:49:34 +0000 Subject: matz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 8c7169ed17..d7d7c26793 100644 --- a/gc.c +++ b/gc.c @@ -284,8 +284,7 @@ rb_newobj() freelist = freelist->as.free.next; return obj; } - if (dont_gc || during_gc || rb_prohibit_interrupt) add_heap(); - else rb_gc(); + rb_gc(); goto retry; } @@ -661,18 +660,6 @@ gc_sweep() int freed = 0; int i, used = heaps_used; - if (ruby_in_compile) { - /* sould not reclaim nodes during compilation */ - for (i = 0; i < used; i++) { - p = heaps[i]; pend = p + HEAP_SLOTS; - while (p < pend) { - if (!(p->as.basic.flags&FL_MARK) && BUILTIN_TYPE(p) == T_NODE) - rb_gc_mark(p); - p++; - } - } - } - freelist = 0; final_list = 0; for (i = 0; i < used; i++) { @@ -913,6 +900,11 @@ rb_gc() # define STACK_END (stack_end) #endif + if (dont_gc || during_gc || rb_prohibit_interrupt || ruby_in_compile) { + add_heap(); + return; + } + malloc_memories = 0; if (during_gc) return; -- cgit v1.2.3