[前][次][番号順一覧][スレッド一覧]

ruby-changes:32682

From: nobu <ko1@a...>
Date: Thu, 30 Jan 2014 19:10:35 +0900 (JST)
Subject: [ruby-changes:32682] nobu:r44761 (trunk): vm_eval.c: fix NoMethodError message

nobu	2014-01-30 19:10:32 +0900 (Thu, 30 Jan 2014)

  New Revision: 44761

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=44761

  Log:
    vm_eval.c: fix NoMethodError message
    
    * vm_eval.c (vm_call0_body): fix NoMethodError message for refined
      method entry.

  Modified files:
    trunk/vm_eval.c
Index: vm_eval.c
===================================================================
--- vm_eval.c	(revision 44760)
+++ vm_eval.c	(revision 44761)
@@ -188,6 +188,7 @@ vm_call0_body(rb_thread_t* th, rb_call_i https://github.com/ruby/ruby/blob/trunk/vm_eval.c#L188
       case VM_METHOD_TYPE_ZSUPER:
       case VM_METHOD_TYPE_REFINED:
 	{
+	    int ex = ci->me->def->type == VM_METHOD_TYPE_ZSUPER ? NOEX_SUPER : 0;
 	    if (ci->me->def->type == VM_METHOD_TYPE_REFINED &&
 		ci->me->def->body.orig_me) {
 		ci->me = ci->me->def->body.orig_me;
@@ -197,7 +198,7 @@ vm_call0_body(rb_thread_t* th, rb_call_i https://github.com/ruby/ruby/blob/trunk/vm_eval.c#L198
 	    ci->defined_class = RCLASS_SUPER(ci->defined_class);
 
 	    if (!ci->defined_class || !(ci->me = rb_method_entry(ci->defined_class, ci->mid, &ci->defined_class))) {
-		ret = method_missing(ci->recv, ci->mid, ci->argc, argv, NOEX_SUPER);
+		ret = method_missing(ci->recv, ci->mid, ci->argc, argv, ex);
 		goto success;
 	    }
 	    RUBY_VM_CHECK_INTS(th);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]