diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2022-12-08 10:31:45 -0800 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2022-12-08 10:31:56 -0800 |
commit | 2cea8e014dbbbb68e4e8be367529b2beae564c54 (patch) | |
tree | c215c44c4c2f074d916197102a7ec2e548238795 /mjit.c | |
parent | 73771e4b192f3db62efb854affdfc95babba1d35 (diff) |
MJIT: Mark MJIT's objects from mjit_mark
It looks like the current way of marking objects was breaking
eightbitraptor's upcoming VWA changes and this seems to fix it.
Diffstat (limited to 'mjit.c')
-rw-r--r-- | mjit.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1721,8 +1721,6 @@ mjit_init(const struct mjit_options *opts) rb_mMJITC = rb_const_get(rb_mMJIT, rb_intern("C")); rb_cMJITCompiler = rb_funcall(rb_const_get(rb_mMJIT, rb_intern("Compiler")), rb_intern("new"), 0); rb_cMJITIseqPtr = rb_funcall(rb_mMJITC, rb_intern("rb_iseq_t"), 0); - rb_gc_register_mark_object(rb_cMJITCompiler); - rb_gc_register_mark_object(rb_cMJITIseqPtr); mjit_call_p = true; mjit_pid = getpid(); @@ -1922,6 +1920,11 @@ mjit_mark(void) return; RUBY_MARK_ENTER("mjit"); + // Mark objects used by the MJIT compiler + rb_gc_mark(rb_cMJITCompiler); + rb_gc_mark(rb_cMJITIseqPtr); + + // Mark JIT-compiled ISEQs struct rb_mjit_unit *unit = NULL; ccan_list_for_each(&active_units.head, unit, unode) { rb_gc_mark((VALUE)unit->iseq); |