summaryrefslogtreecommitdiff
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-20 15:53:38 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-20 15:53:38 +0000
commit9e7b5784180e29b258c99fd36639b5221d427287 (patch)
treee055f4d1e6d183fd14d11d20fd49bd3ce17f09f5 /vm_insnhelper.c
parentab2e7357bd27b5139415bf823c2780bc8273eb83 (diff)
merge revision(s) 58245,60127: [Backport #13973]
Refactored using Method#owner. proc.c: super_method of included method * proc.c (method_super_method): search the next super method along the included ancestor chain. [ruby-core:83114] [Bug #13973] * vm_method.c (rb_callable_method_entry_without_refinements): return the defined class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@62865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 57f1859c2a..5e3abc9d80 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -1336,7 +1336,8 @@ check_match(VALUE pattern, VALUE target, enum vm_check_match_type type)
}
/* fall through */
case VM_CHECKMATCH_TYPE_CASE: {
- const rb_callable_method_entry_t *me = rb_callable_method_entry_with_refinements(CLASS_OF(pattern), idEqq);
+ const rb_callable_method_entry_t *me =
+ rb_callable_method_entry_with_refinements(CLASS_OF(pattern), idEqq, NULL);
if (me) {
return vm_call0(GET_THREAD(), pattern, idEqq, 1, &target, me);
}
@@ -1972,7 +1973,7 @@ vm_call_opt_send(rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_calling
DEC_SP(1);
}
- cc->me = rb_callable_method_entry_with_refinements(CLASS_OF(calling->recv), ci->mid);
+ cc->me = rb_callable_method_entry_with_refinements(CLASS_OF(calling->recv), ci->mid, NULL);
ci->flag = VM_CALL_FCALL | VM_CALL_OPT_SEND;
return vm_call_method(th, reg_cfp, calling, ci, cc);
}
@@ -2015,7 +2016,7 @@ vm_call_method_missing(rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_c
cc_entry = *orig_cc;
cc_entry.me =
rb_callable_method_entry_without_refinements(CLASS_OF(calling->recv),
- idMethodMissing);
+ idMethodMissing, NULL);
cc = &cc_entry;
calling->argc = argc;