From e731ced2717ed151369b2d6635452ffdf0c96e43 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Fri, 3 Feb 2023 22:42:13 -0800 Subject: Implement method call --- vm_method.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'vm_method.c') diff --git a/vm_method.c b/vm_method.c index 82c29624c1..4cb96cc7fd 100644 --- a/vm_method.c +++ b/vm_method.c @@ -124,6 +124,7 @@ vm_cme_invalidate(rb_callable_method_entry_t *cme) RB_DEBUG_COUNTER_INC(cc_cme_invalidate); rb_yjit_cme_invalidate(cme); + rb_mjit_cme_invalidate(cme); } static int @@ -188,6 +189,7 @@ clear_method_cache_by_id_in_class(VALUE klass, ID mid) if (cc_tbl && rb_id_table_lookup(cc_tbl, mid, &ccs_data)) { struct rb_class_cc_entries *ccs = (struct rb_class_cc_entries *)ccs_data; rb_yjit_cme_invalidate((rb_callable_method_entry_t *)ccs->cme); + rb_mjit_cme_invalidate((rb_callable_method_entry_t *)ccs->cme); if (NIL_P(ccs->cme->owner)) invalidate_negative_cache(mid); rb_vm_ccs_free(ccs); rb_id_table_delete(cc_tbl, mid); @@ -201,6 +203,9 @@ clear_method_cache_by_id_in_class(VALUE klass, ID mid) if (rb_yjit_enabled_p() && rb_id_table_lookup(cm_tbl, mid, &cme)) { rb_yjit_cme_invalidate((rb_callable_method_entry_t *)cme); } + if (mjit_enabled && rb_id_table_lookup(cm_tbl, mid, &cme)) { + rb_mjit_cme_invalidate((rb_callable_method_entry_t *)cme); + } rb_id_table_delete(cm_tbl, mid); RB_DEBUG_COUNTER_INC(cc_invalidate_leaf_callable); } -- cgit v1.2.1