diff --git a/insns.def b/insns.def index f365106e2c..e3edc5e29f 100644 --- a/insns.def +++ b/insns.def @@ -911,7 +911,7 @@ invokeblock // attr rb_snum_t sp_inc = sp_inc_of_invokeblock(ci); { static struct rb_call_cache cc = { - 0, 0, NULL, NULL, vm_invokeblock_i, + 0, 0, NULL, vm_invokeblock_i, }; VALUE bh = VM_BLOCK_HANDLER_NONE; diff --git a/internal.h b/internal.h index 2346703d68..dee7775d95 100644 --- a/internal.h +++ b/internal.h @@ -2330,7 +2330,6 @@ enum method_missing_reason { MISSING_NONE = 0x40 }; struct rb_callable_method_entry_struct; -struct rb_method_definition_struct; struct rb_execution_context_struct; struct rb_control_frame_struct; struct rb_calling_info; @@ -2342,7 +2341,6 @@ struct rb_call_cache { /* inline cache: values */ const struct rb_callable_method_entry_struct *me; - const struct rb_method_definition_struct *def; VALUE (*call)(struct rb_execution_context_struct *ec, struct rb_control_frame_struct *cfp, diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 197e100607..545fba2dfe 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1386,9 +1386,6 @@ calccall(const struct rb_call_info *ci, const struct rb_call_cache *cc, const rb else if (LIKELY(cc->me != me)) { return vm_call_general; /* normal cases */ } - else if (UNLIKELY(cc->def != me->def)) { - return vm_call_general; /* cc->me was refined elsewhere */ - } /* "Calling a formerly-public method, which is now privatised, with an * explicit receiver" is the only situation we have to check here. A * formerly-private method now publicised is an absolutely safe thing. @@ -1411,7 +1408,6 @@ rb_vm_search_method_slowpath(const struct rb_call_info *ci, struct rb_call_cache GET_GLOBAL_METHOD_STATE(), RCLASS_SERIAL(klass), me, - me ? me->def : NULL, calccall(ci, cc, me), }; VM_ASSERT(callable_method_entry_p(cc->me));