ruby-changes:35453
From: ko1 <ko1@a...>
Date: Thu, 11 Sep 2014 20:23:25 +0900 (JST)
Subject: [ruby-changes:35453] ko1:r47535 (trunk): * vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack.
ko1 2014-09-11 20:23:16 +0900 (Thu, 11 Sep 2014) New Revision: 47535 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=47535 Log: * vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack. Modified files: trunk/ChangeLog trunk/vm.c Index: ChangeLog =================================================================== --- ChangeLog (revision 47534) +++ ChangeLog (revision 47535) @@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Thu Sep 11 20:10:00 2014 Koichi Sasada <ko1@a...> + + * vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack. + Thu Sep 11 19:50:57 2014 Koichi Sasada <ko1@a...> * vm.c (rb_vm_register_special_exception): make new function to Index: vm.c =================================================================== --- vm.c (revision 47534) +++ vm.c (revision 47535) @@ -1981,10 +1981,8 @@ rb_thread_mark(void *ptr) https://github.com/ruby/ruby/blob/trunk/vm.c#L1981 rb_control_frame_t *cfp = th->cfp; rb_control_frame_t *limit_cfp = (void *)(th->stack + th->stack_size); - while (p < sp) { - rb_gc_mark(*p++); - } - rb_gc_mark_locations(p, p + th->mark_stack_len); + rb_gc_mark_values((long)(sp - p), p); + rb_gc_mark_locations(sp, sp + th->mark_stack_len); while (cfp != limit_cfp) { rb_iseq_t *iseq = cfp->iseq; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/