diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gc.c | 3 | ||||
-rw-r--r-- | vm.c | 4 |
3 files changed, 10 insertions, 4 deletions
@@ -1,3 +1,10 @@ +Wed Jul 16 18:03:50 2014 Koichi Sasada <ko1@atdot.net> + + * gc.c (gc_mark_roots): call rb_vm_mark directly. + + * vm.c: remove mark function for RubyVM object because + RubyVM object marked manually. + Wed Jul 16 12:25:39 2014 NARUSE, Yui <naruse@ruby-lang.org> * regcomp.c: Merge Onigmo 5.14.1 25a8a69fc05ae3b56a09. @@ -4222,7 +4222,8 @@ gc_mark_roots(rb_objspace_t *objspace, int full_mark, const char **categoryp) MARK_CHECKPOINT("vm"); SET_STACK_END; - th->vm->self ? rb_gc_mark(th->vm->self) : rb_vm_mark(th->vm); + rb_vm_mark(th->vm); + if (th->vm->self) gc_mark_ptr(objspace, th->vm->self); MARK_CHECKPOINT("finalizers"); mark_tbl(objspace, finalizer_table); @@ -1790,8 +1790,6 @@ rb_vm_add_root_module(ID id, VALUE module) return TRUE; } -#define vm_free 0 - int ruby_vm_destruct(rb_vm_t *vm) { @@ -1844,7 +1842,7 @@ vm_memsize(const void *ptr) static const rb_data_type_t vm_data_type = { "VM", - {rb_vm_mark, vm_free, vm_memsize,}, + {NULL, NULL, vm_memsize,}, NULL, NULL, RUBY_TYPED_FREE_IMMEDIATELY }; |