From f5b2da3a5325c1ccdca3042b1080639c82c00326 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sat, 31 Oct 2015 01:32:02 +0000 Subject: * vm_insnhelper.c (vm_search_super_method): do not touch `ci' here. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ vm_insnhelper.c | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b492bec045..1782e14f5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Oct 31 10:31:23 2015 Koichi Sasada + + * vm_insnhelper.c (vm_search_super_method): do not touch `ci' here. + Sat Oct 31 10:22:49 2015 yui-knk * eval_error.c (undef_mesg_for): fix typo. Before this commit diff --git a/vm_insnhelper.c b/vm_insnhelper.c index ae6195ef4c..9a615df26f 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -2246,11 +2246,12 @@ vm_super_outside(void) static void vm_search_super_method(rb_thread_t *th, rb_control_frame_t *reg_cfp, - struct rb_calling_info *calling, struct rb_call_info *ci, struct rb_call_cache *cc) + struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc) { VALUE current_defined_class, klass; VALUE sigval = TOPN(calling->argc); const rb_callable_method_entry_t *me = rb_vm_frame_method_entry(reg_cfp); + ID mid; if (!me) { vm_super_outside(); @@ -2282,7 +2283,7 @@ vm_search_super_method(rb_thread_t *th, rb_control_frame_t *reg_cfp, " Specify all arguments explicitly."); } - ci->mid = me->def->original_id; + mid = me->def->original_id; klass = vm_search_normal_superclass(me->defined_class); if (!klass) { @@ -2292,7 +2293,7 @@ vm_search_super_method(rb_thread_t *th, rb_control_frame_t *reg_cfp, } else { /* TODO: use inline cache */ - cc->me = rb_callable_method_entry(klass, ci->mid); + cc->me = rb_callable_method_entry(klass, mid); CI_SET_FASTPATH(cc, vm_call_super_method, 1); } } -- cgit v1.2.3