ruby-changes:16899
From: nobu <ko1@a...>
Date: Sat, 7 Aug 2010 13:33:48 +0900 (JST)
Subject: [ruby-changes:16899] Ruby:r28895 (trunk): * vm_eval.c (vm_call0): fix for VM_METHOD_TYPE_NOTIMPLEMENTED.
nobu 2010-08-07 13:33:33 +0900 (Sat, 07 Aug 2010) New Revision: 28895 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28895 Log: * vm_eval.c (vm_call0): fix for VM_METHOD_TYPE_NOTIMPLEMENTED. [ruby-dev:41953] Added directories: trunk/ext/-test-/bug-3662/ Added files: trunk/ext/-test-/bug-3662/bug.c trunk/ext/-test-/bug-3662/extconf.rb trunk/test/-ext-/test_bug-3662.rb Modified files: trunk/ChangeLog trunk/vm_eval.c Index: ChangeLog =================================================================== --- ChangeLog (revision 28894) +++ ChangeLog (revision 28895) @@ -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] + Sat Aug 7 09:47:06 2010 Masaki Suketa <masaki.suketa@n...> * ext/win32ole/win32ole.c: fix checking version of GCC. Index: vm_eval.c =================================================================== --- vm_eval.c (revision 28894) +++ vm_eval.c (revision 28895) @@ -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: ext/-test-/bug-3662/extconf.rb =================================================================== --- ext/-test-/bug-3662/extconf.rb (revision 0) +++ ext/-test-/bug-3662/extconf.rb (revision 28895) @@ -0,0 +1 @@ +create_makefile("-test-/bug-3662/bug") Property changes on: ext/-test-/bug-3662/extconf.rb ___________________________________________________________________ Added: svn:eol-style + LF Index: ext/-test-/bug-3662/bug.c =================================================================== --- ext/-test-/bug-3662/bug.c (revision 0) +++ ext/-test-/bug-3662/bug.c (revision 28895) @@ -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); +} Property changes on: ext/-test-/bug-3662/bug.c ___________________________________________________________________ Added: svn:eol-style + LF Index: test/-ext-/test_bug-3662.rb =================================================================== --- test/-ext-/test_bug-3662.rb (revision 0) +++ test/-ext-/test_bug-3662.rb (revision 28895) @@ -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 Property changes on: test/-ext-/test_bug-3662.rb ___________________________________________________________________ Added: svn:eol-style + LF -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/