From: Eric Wong Date: 2016-05-23T08:07:39+00:00 Subject: [ruby-core:75688] Re: [Ruby trunk Bug#12416] struct rb_id_table lacks mark function shyouhei@ruby-lang.org wrote: > Bug #12416: struct rb_id_table lacks mark function > https://bugs.ruby-lang.org/issues/12416 > The struct rb_id_table can hold arbitrary VALUE values. Can, but currently does not (AFAIK). > Now that this > struct is reachable form Ruby's object space, it must understand what GC > requests to it. Do you have plans to hold arbitrary VALUE objects? > +++ b/iseq.c > @@ -128,6 +128,7 @@ rb_iseq_mark(const rb_iseq_t *iseq) > RUBY_MARK_UNLESS_NULL(compile_data->mark_ary); > RUBY_MARK_UNLESS_NULL(compile_data->err_info); > RUBY_MARK_UNLESS_NULL(compile_data->catch_table_ary); > + rb_id_table_mark(compile_data->ivar_cache_table); Right now, ivar_cache_table only holds Fixnum which does not need marking. Even with generational GC, I still prefer we not waste CPU cycles walking through tables for noops. Unsubscribe: