summaryrefslogtreecommitdiff
path: root/vm_method.c
diff options
context:
space:
mode:
-rw-r--r--vm_method.c17
1 files changed, 8 insertions, 9 deletions
@@ -307,19 +307,19 @@ rb_clear_method_cache(VALUE klass_or_module, ID mid)
void rb_cc_table_free(VALUE klass);
static int
-invalidate_all_cc(void *vstart, void *vend, size_t stride, void *data)
{
VALUE v = (VALUE)vstart;
for (; v != (VALUE)vend; v += stride) {
void *ptr = asan_poisoned_object_p(v);
asan_unpoison_object(v, false);
if (RBASIC(v)->flags) { // liveness check
- if (RB_TYPE_P(v, T_CLASS) ||
- RB_TYPE_P(v, T_ICLASS)) {
- if (RCLASS_CC_TBL(v)) {
- rb_cc_table_free(v);
}
- RCLASS_CC_TBL(v) = NULL;
}
}
@@ -331,10 +331,9 @@ invalidate_all_cc(void *vstart, void *vend, size_t stride, void *data)
}
void
-rb_clear_method_cache_all(void)
{
- rb_objspace_each_objects(invalidate_all_cc, NULL);
-
rb_yjit_invalidate_all_method_lookup_assumptions();
}