summaryrefslogtreecommitdiff
path: root/iseq.c
diff options
context:
space:
mode:
Diffstat (limited to 'iseq.c')
-rw-r--r--iseq.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/iseq.c b/iseq.c
index 129d6d3b2c..42cf9a2fa6 100644
--- a/iseq.c
+++ b/iseq.c
@@ -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)) {