ruby-changes:14298
From: nobu <ko1@a...>
Date: Sat, 19 Dec 2009 09:58:28 +0900 (JST)
Subject: [ruby-changes:14298] Ruby:r26124 (trunk): * vm_eval.c (check_funcall): reset method_missing_reason before
nobu 2009-12-19 09:58:13 +0900 (Sat, 19 Dec 2009) New Revision: 26124 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26124 Log: * vm_eval.c (check_funcall): reset method_missing_reason before trying the call. based on a patch from Yehuda Katz in [ruby-core:27219]. Modified files: trunk/ChangeLog trunk/test/ruby/test_object.rb trunk/vm_eval.c Index: ChangeLog =================================================================== --- ChangeLog (revision 26123) +++ ChangeLog (revision 26124) @@ -1,3 +1,9 @@ +Sat Dec 19 09:58:05 2009 Nobuyoshi Nakada <nobu@r...> + + * vm_eval.c (check_funcall): reset method_missing_reason before + trying the call. based on a patch from Yehuda Katz in + [ruby-core:27219]. + Sat Dec 19 09:29:22 2009 Marc-Andre Lafortune <ruby-core@m...> * lib/set.rb: Add checks that passed argument is Enumerable. Index: vm_eval.c =================================================================== --- vm_eval.c (revision 26123) +++ vm_eval.c (revision 26124) @@ -275,6 +275,7 @@ else { struct rescue_funcall_args args; + th->method_missing_reason = 0; args.recv = recv; args.sym = ID2SYM(mid); args.argc = argc; Index: test/ruby/test_object.rb =================================================================== --- test/ruby/test_object.rb (revision 26123) +++ test/ruby/test_object.rb (revision 26124) @@ -322,6 +322,16 @@ assert_raise(ArgumentError) do c.new.method_missing end + + bug2494 = '[ruby-core:27219]' + c = Class.new do + def method_missing(meth, *args) + super + end + end + b = c.new + foo rescue nil + assert_nothing_raised(bug2494) {[b].flatten} end def test_respond_to_missing -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/