[ruby-cvs:70226] nobu:r63136 (trunk): error.c: super in method_missing

nobu at ruby-lang.org nobu at ruby-lang.org
Thu Apr 12 12:48:49 JST 2018


nobu	2018-04-12 12:48:48 +0900 (Thu, 12 Apr 2018)

  New Revision: 63136

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=63136

  Log:
    error.c: super in method_missing
    
    * error.c (nometh_err_initialize): do not shirtcut rb_call_super,
      to push proper control frame.  [ruby-dev:50522] [Bug #14670]
    
    * error.c (rb_nomethod_err_new): allocate and initialize a new
      NoMethodError instance.
    
    * vm_eval.c (rb_make_no_method_exception): create a new exception
      instance directly without method calls, to prevent influence of
      ruby level method definitions, which can cause an unpredictable
      behavior, e.g., infinite recursion.

  Modified files:
    trunk/error.c
    trunk/internal.h
    trunk/test/ruby/test_exception.rb
    trunk/vm_eval.c


More information about the ruby-cvs mailing list