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

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/

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