diff options
Diffstat (limited to 'gc/default/default.c')
-rw-r--r-- | gc/default/default.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gc/default/default.c b/gc/default/default.c index da1438c2fe..6d5e7a35a3 100644 --- a/gc/default/default.c +++ b/gc/default/default.c @@ -2774,7 +2774,11 @@ rb_gc_impl_undefine_finalizer(void *objspace_ptr, VALUE obj) GC_ASSERT(!OBJ_FROZEN(obj)); st_data_t data = obj; + + int lev = rb_gc_vm_lock(); st_delete(finalizer_table, &data, 0); + rb_gc_vm_unlock(lev); + FL_UNSET(obj, FL_FINALIZE); } |