diff options
| -rw-r--r-- | gc.c | 8 | ||||
| -rw-r--r-- | gc/gc.h | 1 |
2 files changed, 9 insertions, 0 deletions
@@ -3174,6 +3174,14 @@ gc_mark_classext_iclass(rb_classext_t *ext, bool prime, VALUE box_value, void *a #define TYPED_DATA_REFS_OFFSET_LIST(d) (size_t *)(uintptr_t)RTYPEDDATA_TYPE(d)->function.dmark void +rb_gc_move_obj_during_marking(VALUE from, VALUE to) +{ + if (rb_obj_gen_fields_p(to)) { + rb_mark_generic_ivar(from); + } +} + +void rb_gc_mark_children(void *objspace, VALUE obj) { struct gc_mark_classext_foreach_arg foreach_args; @@ -107,6 +107,7 @@ MODULAR_GC_FN void *rb_gc_get_ractor_newobj_cache(void); MODULAR_GC_FN void rb_gc_initialize_vm_context(struct rb_gc_vm_context *context); MODULAR_GC_FN void rb_gc_worker_thread_set_vm_context(struct rb_gc_vm_context *context); MODULAR_GC_FN void rb_gc_worker_thread_unset_vm_context(struct rb_gc_vm_context *context); +MODULAR_GC_FN void rb_gc_move_obj_during_marking(VALUE from, VALUE to); #endif #if USE_MODULAR_GC |
