ruby-changes:16940
From: yugui <ko1@a...>
Date: Mon, 9 Aug 2010 13:40:36 +0900 (JST)
Subject: [ruby-changes:16940] Ruby:r28936 (ruby_1_9_2): merges r28895 from trunk into ruby_1_9_2.
yugui 2010-08-09 13:40:22 +0900 (Mon, 09 Aug 2010) New Revision: 28936 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28936 Log: merges r28895 from trunk into ruby_1_9_2. -- * vm_eval.c (vm_call0): fix for VM_METHOD_TYPE_NOTIMPLEMENTED. [ruby-dev:41953] Added directories: branches/ruby_1_9_2/ext/-test-/ branches/ruby_1_9_2/ext/-test-/bug-3662/ branches/ruby_1_9_2/test/-ext-/ Added files: branches/ruby_1_9_2/ext/-test-/bug-3662/bug.c branches/ruby_1_9_2/ext/-test-/bug-3662/extconf.rb branches/ruby_1_9_2/test/-ext-/test_bug-3662.rb Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/vm_eval.c Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 28935) +++ ruby_1_9_2/ChangeLog (revision 28936) @@ -1,3 +1,8 @@ +Sat Aug 7 13:33:25 2010 Nobuyoshi Nakada <nobu@r...> + + * vm_eval.c (vm_call0): fix for VM_METHOD_TYPE_NOTIMPLEMENTED. + [ruby-dev:41953] + Fri Aug 6 18:59:23 2010 Nobuyoshi Nakada <nobu@r...> * file.c (realpath_rec): rb_str_modify depends on the length, so Index: ruby_1_9_2/vm_eval.c =================================================================== --- ruby_1_9_2/vm_eval.c (revision 28935) +++ ruby_1_9_2/vm_eval.c (revision 28936) @@ -66,6 +66,7 @@ val = vm_exec(th); break; } + case VM_METHOD_TYPE_NOTIMPLEMENTED: case VM_METHOD_TYPE_CFUNC: { EXEC_EVENT_HOOK(th, RUBY_EVENT_C_CALL, recv, id, klass); { Index: ruby_1_9_2/ext/-test-/bug-3662/extconf.rb =================================================================== --- ruby_1_9_2/ext/-test-/bug-3662/extconf.rb (revision 0) +++ ruby_1_9_2/ext/-test-/bug-3662/extconf.rb (revision 28936) @@ -0,0 +1 @@ +create_makefile("-test-/bug-3662/bug") Index: ruby_1_9_2/ext/-test-/bug-3662/bug.c =================================================================== --- ruby_1_9_2/ext/-test-/bug-3662/bug.c (revision 0) +++ ruby_1_9_2/ext/-test-/bug-3662/bug.c (revision 28936) @@ -0,0 +1,16 @@ +#include <ruby.h> + +static VALUE +bug_funcall(int argc, VALUE *argv, VALUE self) +{ + if (argc < 1) rb_raise(rb_eArgError, "not enough argument"); + return rb_funcall2(self, rb_to_id(*argv), argc-1, argv+1); +} + +void +Init_bug(void) +{ + VALUE mBug = rb_define_module("Bug"); + rb_define_module_function(mBug, "funcall", bug_funcall, -1); + rb_define_module_function(mBug, "notimplement", rb_f_notimplement, -1); +} Index: ruby_1_9_2/test/-ext-/test_bug-3662.rb =================================================================== --- ruby_1_9_2/test/-ext-/test_bug-3662.rb (revision 0) +++ ruby_1_9_2/test/-ext-/test_bug-3662.rb (revision 28936) @@ -0,0 +1,10 @@ +require '-test-/bug-3662/bug' + +class Test_BUG_3662 < Test::Unit::TestCase + def test_funcall_notimplement + bug3662 = '[ruby-dev:41953]' + assert_raise(NotImplementedError, bug3662) { + Bug.funcall(:notimplement) + } + end +end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/