From 20a9bd67636a82ca83c5cef4755a8206dc34eca7 Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 16 Jul 2014 09:09:40 +0000 Subject: * iseq.c (rb_iseq_defined_string): use rb_gc_mark_object() instead of marking from vm_mark(). * vm.c (rb_vm_mark): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ iseq.c | 1 + vm.c | 3 --- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2390c2efc6..938118d5f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Jul 16 18:08:47 2014 Koichi Sasada + + * iseq.c (rb_iseq_defined_string): use rb_gc_mark_object() instead of + marking from vm_mark(). + + * vm.c (rb_vm_mark): ditto. + Wed Jul 16 18:03:50 2014 Koichi Sasada * gc.c (gc_mark_roots): call rb_vm_mark directly. diff --git a/iseq.c b/iseq.c index a7e40ea86c..b3ff7fd558 100644 --- a/iseq.c +++ b/iseq.c @@ -2069,6 +2069,7 @@ rb_iseq_defined_string(enum defined_type type) str = rb_str_new_cstr(estr);; OBJ_FREEZE(str); defs[type-1] = str; + rb_gc_register_mark_object(str); } return str; } diff --git a/vm.c b/vm.c index 4e0ea418ce..5e9204bd70 100644 --- a/vm.c +++ b/vm.c @@ -1771,9 +1771,6 @@ rb_vm_mark(void *ptr) if (vm->trap_list[i].cmd) rb_gc_mark(vm->trap_list[i].cmd); } - if (vm->defined_strings) { - rb_gc_mark_locations(vm->defined_strings, vm->defined_strings + DEFINED_EXPR); - } } RUBY_MARK_LEAVE("vm"); -- cgit v1.2.3