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

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/

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