Xuanzhong Wei <azr...@gmail.com> wrote: > We have the same issue here. > > IMHO, it is a bug introduced by 979ebcf91705709be5041a3be4514e5f1f6ec02c. > The `mark_ary` get GCed before we add it to the ruby's global_list > since we are doing memory allocations before calling rb_global_variable. > > A simple test can be found here: > https://github.com/azrle/ruby_c_ext_test
Thanks, which compiler and version did you use? > I will try to submit a patch later. https://bogomips.org/unicorn-public/20171003145718.30404-1-azr...@gmail.com/raw Yes, seems corect since the compiler doesn't need to keep mark_ary anymore once it only needs the address (&mark_ary). OBJ_FREEZE is an inline which does nothing to prevent the compiler from only keeping RBasic->flags around and not the actual VALUE. -- unsubscribe: unicorn-public+unsubscr...@bogomips.org archive: https://bogomips.org/unicorn-public/