* vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2014-09-11 11:23:16 +00:00
Родитель 8c6c9c46d8
Коммит e45fb73d7b
2 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Thu Sep 11 20:10:00 2014 Koichi Sasada <ko1@atdot.net>
* vm.c (rb_thread_mark): use rb_gc_mark_values() to mark VM stack.
Thu Sep 11 19:50:57 2014 Koichi Sasada <ko1@atdot.net>
* vm.c (rb_vm_register_special_exception): make new function to

6
vm.c
Просмотреть файл

@ -1981,10 +1981,8 @@ rb_thread_mark(void *ptr)
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;