diff options
author | John Hawthorn <john@hawthorn.email> | 2022-03-11 11:48:02 -0800 |
---|---|---|
committer | John Hawthorn <john@hawthorn.email> | 2022-06-21 18:33:51 -0700 |
commit | 9312f4bf62224cc0a11175cb6f9b7d0dd840a491 (patch) | |
tree | 39b12c41eeb08852b8aee3977cd07fd7e17f612f /vm_insnhelper.c | |
parent | a580dd77377c87754b437efb1a02cccc1554dafd (diff) | |
download | ruby-9312f4bf62224cc0a11175cb6f9b7d0dd840a491.tar.gz |
Allow method caching of protected FCALLs
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 8 |
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; |