diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | iseq.c | 1 | ||||
-rw-r--r-- | vm.c | 3 |
3 files changed, 8 insertions, 3 deletions
@@ -1,3 +1,10 @@ +Wed Jul 16 18:08:47 2014 Koichi Sasada <ko1@atdot.net> + + * 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 <ko1@atdot.net> * gc.c (gc_mark_roots): call rb_vm_mark directly. @@ -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; } @@ -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"); |