diff --git a/gc.c b/gc.c index a1d568359..371deb1be 100644 --- a/gc.c +++ b/gc.c @@ -2075,10 +2075,6 @@ garbage_collect_0(VALUE *top_frame) if (during_gc) return; during_gc++; - gc_stack_limit = __stack_grow(STACK_END, GC_LEVEL_MAX); - rb_mark_table_prepare(); - init_mark_stack(); - if (gc_statistics) { gc_collections++; gettimeofday(&gctv1, NULL); @@ -2087,6 +2083,10 @@ garbage_collect_0(VALUE *top_frame) } } + gc_stack_limit = __stack_grow(STACK_END, GC_LEVEL_MAX); + rb_mark_table_prepare(); + init_mark_stack(); + gc_mark((VALUE)ruby_current_node); /* mark frame stack */