summaryrefslogtreecommitdiff
path: root/vm_method.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2021-03-17 19:07:20 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:32 -0400
commitec1cbbb07d00828e6265074ca4977a8dae6b8b29 (patch)
treecbc4a1cb075eb4e237dd3039c42d1b9a159d82ce /vm_method.c
parent0cd9120f177b153126a093e4beabb5784cd0ab99 (diff)
Get rid of dependency on rb_call_cache
Diffstat (limited to 'vm_method.c')
-rw-r--r--vm_method.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/vm_method.c b/vm_method.c
index 5fd8f6a8bc..5260f2d05c 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -123,7 +123,6 @@ rb_vm_cc_invalidate(const struct rb_callcache *cc)
VM_ASSERT(cc->klass != 0); // should be enable
*(VALUE *)&cc->klass = 0;
- rb_yjit_method_lookup_change((VALUE)cc);
RB_DEBUG_COUNTER_INC(cc_ent_invalidate);
}
@@ -135,7 +134,8 @@ vm_cme_invalidate(rb_callable_method_entry_t *cme)
VM_ASSERT(callable_method_entry_p(cme));
METHOD_ENTRY_INVALIDATED_SET(cme);
RB_DEBUG_COUNTER_INC(cc_cme_invalidate);
- rb_yjit_method_lookup_change((VALUE)cme);
+
+ rb_yjit_cme_invalidate((VALUE)cme);
}
void
@@ -238,6 +238,8 @@ clear_method_cache_by_id_in_class(VALUE klass, ID mid)
invalidate_negative_cache(mid);
}
}
+
+ rb_yjit_method_lookup_change(klass, mid);
}
static void
@@ -305,6 +307,8 @@ void
rb_clear_method_cache_all(void)
{
rb_objspace_each_objects(invalidate_all_cc, NULL);
+
+ rb_yjit_invalidate_all_method_lookup_assumptions();
}
void