diff --git a/ChangeLog b/ChangeLog index 1c484152fe..5d66b4c343 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Jun 2 17:14:49 2014 Koichi Sasada + + * vm.c (ruby_vm_destruct): remove useless call of + rb_gc_force_recycle(). + + At this line, a VM object is already freed + (is changed to T_NONE) by rb_gc_call_finalizer_at_exit(). + Mon Jun 2 15:50:24 2014 Koichi Sasada * eval.c (rb_using_refinement): add write-barriers for diff --git a/vm.c b/vm.c index ae0148e852..ea138cc862 100644 --- a/vm.c +++ b/vm.c @@ -1749,12 +1749,12 @@ int ruby_vm_destruct(rb_vm_t *vm) { RUBY_FREE_ENTER("vm"); + if (vm) { rb_thread_t *th = vm->main_thread; #if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE struct rb_objspace *objspace = vm->objspace; #endif - rb_gc_force_recycle(vm->self); vm->main_thread = 0; if (th) { rb_fiber_reset_root_local_storage(th->self);