diff options
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -7232,7 +7232,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj) gc_mark_set_parent(objspace, obj); if (FL_TEST(obj, FL_EXIVAR)) { - rb_mark_generic_ivar(obj); + rb_mark_and_update_generic_ivar(obj); } switch (BUILTIN_TYPE(obj)) { @@ -10560,6 +10560,10 @@ gc_update_object_references(rb_objspace_t *objspace, VALUE obj) gc_report(4, objspace, "update-refs: %p ->\n", (void *)obj); + if (FL_TEST(obj, FL_EXIVAR)) { + rb_mark_and_update_generic_ivar(obj); + } + switch (BUILTIN_TYPE(obj)) { case T_CLASS: case T_MODULE: |