aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2022-03-11 11:48:02 -0800
committerJohn Hawthorn <john@hawthorn.email>2022-06-21 18:33:51 -0700
commit9312f4bf62224cc0a11175cb6f9b7d0dd840a491 (patch)
tree39b12c41eeb08852b8aee3977cd07fd7e17f612f /vm_insnhelper.c
parenta580dd77377c87754b437efb1a02cccc1554dafd (diff)
downloadruby-9312f4bf62224cc0a11175cb6f9b7d0dd840a491.tar.gz
Allow method caching of protected FCALLs
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 248a59f642..da04e3521f 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -2534,12 +2534,12 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
if (LIKELY(!(vm_ci_flag(ci) & VM_CALL_TAILCALL))) {
CC_SET_FASTPATH(cc, vm_call_iseq_setup_normal_opt_start,
!IS_ARGS_SPLAT(ci) && !IS_ARGS_KEYWORD(ci) &&
- cacheable_ci && METHOD_ENTRY_CACHEABLE(vm_cc_cme(cc)));
+ cacheable_ci && vm_call_cacheable(ci, cc));
}
else {
CC_SET_FASTPATH(cc, vm_call_iseq_setup_tailcall_opt_start,
!IS_ARGS_SPLAT(ci) && !IS_ARGS_KEYWORD(ci) &&
- cacheable_ci && METHOD_ENTRY_CACHEABLE(vm_cc_cme(cc)));
+ cacheable_ci && vm_call_cacheable(ci, cc));
}
/* initialize opt vars for self-references */
@@ -2567,7 +2567,7 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
args_setup_kw_parameters(ec, iseq, ci_kws, ci_kw_len, ci_keywords, klocals);
CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_kwarg,
- cacheable_ci && METHOD_ENTRY_CACHEABLE(vm_cc_cme(cc)));
+ cacheable_ci && vm_call_cacheable(ci, cc));
return 0;
}
@@ -2580,7 +2580,7 @@ vm_callee_setup_arg(rb_execution_context_t *ec, struct rb_calling_info *calling,
if (klocals[kw_param->num] == INT2FIX(0)) {
/* copy from default_values */
CC_SET_FASTPATH(cc, vm_call_iseq_setup_kwparm_nokwarg,
- cacheable_ci && METHOD_ENTRY_CACHEABLE(vm_cc_cme(cc)));
+ cacheable_ci && vm_call_cacheable(ci, cc));
}
return 0;