Fix a critical mistake around GC

This commit is contained in:
Takashi Kokubun 2022-12-23 17:39:44 -08:00
Родитель 25ae82b83e
Коммит 43f579afb4
1 изменённых файлов: 15 добавлений и 7 удалений

22
mjit.c
Просмотреть файл

@ -348,13 +348,6 @@ mjit_child_after_fork(void)
// TODO: remove this
}
// Called by rb_vm_mark()
void
mjit_mark(void)
{
// TODO: implement
}
void
mjit_mark_cc_entries(const struct rb_iseq_constant_body *const body)
{
@ -392,6 +385,21 @@ rb_mjit_compile(const rb_iseq_t *iseq)
RB_VM_LOCK_LEAVE();
}
// Called by rb_vm_mark()
void
mjit_mark(void)
{
if (!mjit_enabled)
return;
RUBY_MARK_ENTER("mjit");
// Mark objects used by the MJIT compiler
rb_gc_mark(rb_MJITCompiler);
rb_gc_mark(rb_cMJITIseqPtr);
RUBY_MARK_LEAVE("mjit");
}
void
mjit_init(const struct mjit_options *opts)
{