summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 9f24ade5c5..2641115f90 100644
--- a/gc.c
+++ b/gc.c
@@ -1560,7 +1560,12 @@ rb_define_finalizer(VALUE obj, VALUE block)
{
should_be_finalizable(obj);
should_be_callable(block);
- return rb_gc_impl_define_finalizer(rb_gc_get_objspace(), obj, block);
+
+ block = rb_gc_impl_define_finalizer(rb_gc_get_objspace(), obj, block);
+
+ block = rb_ary_new3(2, INT2FIX(0), block);
+ OBJ_FREEZE(block);
+ return block;
}
void