diff --git a/gc/default.c b/gc/default.c index 597044b5f6..59890d03be 100644 --- a/gc/default.c +++ b/gc/default.c @@ -2970,6 +2970,8 @@ rb_gc_impl_define_finalizer(void *objspace_ptr, VALUE obj, VALUE block) VALUE table; st_data_t data; + GC_ASSERT(!OBJ_FROZEN(obj)); + RBASIC(obj)->flags |= FL_FINALIZE; if (st_lookup(finalizer_table, obj, &data)) {