зеркало из https://github.com/github/ruby.git
* 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:
Родитель
8c6c9c46d8
Коммит
e45fb73d7b
|
@ -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
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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче