diff options
author | Aaron Patterson <[email protected]> | 2024-04-19 17:02:21 -0700 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2024-04-24 09:30:59 -0700 |
commit | 853c0b1a776ba67cd20741f631788d8556c854eb (patch) | |
tree | 7ba1647c09ad03cc7428d5c4194d733ef625124d /vm_insnhelper.c | |
parent | 9bba999be7b32949b4b37dd7a871c5dc1e36c2f8 (diff) |
Reuse slow path method search for gccct
This way all code paths use the same search code for finding call caches
for a particular method.
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 377f7b513a..027349622c 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -2421,13 +2421,13 @@ opt_equality(const rb_iseq_t *cd_owner, VALUE recv, VALUE obj, CALL_DATA cd) #undef EQ_UNREDEFINED_P -static inline const struct rb_callcache *gccct_method_search(rb_execution_context_t *ec, VALUE recv, ID mid, int argc); // vm_eval.c +static inline const struct rb_callcache *gccct_method_search(rb_execution_context_t *ec, VALUE recv, ID mid, int argc, call_type scope); // vm_eval.c NOINLINE(static VALUE opt_equality_by_mid_slowpath(VALUE recv, VALUE obj, ID mid)); static VALUE opt_equality_by_mid_slowpath(VALUE recv, VALUE obj, ID mid) { - const struct rb_callcache *cc = gccct_method_search(GET_EC(), recv, mid, 1); + const struct rb_callcache *cc = gccct_method_search(GET_EC(), recv, mid, 1, CALL_PUBLIC); if (cc && check_cfunc(vm_cc_cme(cc), rb_obj_equal)) { return RBOOL(recv == obj); |