diff options
Diffstat (limited to 'iseq.c')
-rw-r--r-- | iseq.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -175,7 +175,9 @@ rb_iseq_free(const rb_iseq_t *iseq) iseq_clear_ic_references(iseq); struct rb_iseq_constant_body *const body = ISEQ_BODY(iseq); mjit_free_iseq(iseq); /* Notify MJIT */ - rb_yjit_iseq_free(body); +#if YJIT_BUILD + rb_yjit_iseq_free(body->yjit_payload); +#endif ruby_xfree((void *)body->iseq_encoded); ruby_xfree((void *)body->insns_info.body); if (body->insns_info.positions) ruby_xfree((void *)body->insns_info.positions); @@ -439,7 +441,9 @@ rb_iseq_update_references(rb_iseq_t *iseq) #if USE_MJIT mjit_update_references(iseq); #endif - rb_yjit_iseq_update_references(body); +#if YJIT_BUILD + rb_yjit_iseq_update_references(body->yjit_payload); +#endif } } @@ -527,7 +531,9 @@ rb_iseq_mark(const rb_iseq_t *iseq) #if USE_MJIT mjit_mark_cc_entries(body); #endif - rb_yjit_iseq_mark(body); +#if YJIT_BUILD + rb_yjit_iseq_mark(body->yjit_payload); +#endif } if (FL_TEST_RAW((VALUE)iseq, ISEQ_NOT_LOADED_YET)) { |