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

ruby-changes:13118

From: nobu <ko1@a...>
Date: Sun, 13 Sep 2009 00:21:19 +0900 (JST)
Subject: [ruby-changes:13118] Ruby:r24868 (trunk): * vm_method.c (rb_alias): hooks are called from rb_add_method_def.

nobu	2009-09-13 00:21:03 +0900 (Sun, 13 Sep 2009)

  New Revision: 24868

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24868

  Log:
    * vm_method.c (rb_alias): hooks are called from rb_add_method_def.

  Modified files:
    trunk/ChangeLog
    trunk/test/ruby/test_module.rb
    trunk/vm_method.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24867)
+++ ChangeLog	(revision 24868)
@@ -1,8 +1,10 @@
-Sun Sep 13 00:03:01 2009  Nobuyoshi Nakada  <nobu@r...>
+Sun Sep 13 00:21:02 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* vm_method.c (rb_add_method, rb_add_method_me): call method added
 	  hook after definition.  [ruby-core:25536]
 
+	* vm_method.c (rb_alias): hooks are called from rb_add_method_def.
+
 Sat Sep 12 22:47:24 2009  Tanaka Akira  <akr@f...>
 
 	* lib/open-uri.rb (URI::FTP#buffer_open): use the port specified in
Index: vm_method.c
===================================================================
--- vm_method.c	(revision 24867)
+++ vm_method.c	(revision 24868)
@@ -827,7 +827,6 @@
 rb_alias(VALUE klass, ID name, ID def)
 {
     rb_method_entry_t *orig_me;
-    VALUE singleton = 0;
 
     rb_frozen_class_p(klass);
     if (klass == rb_cObject) {
@@ -842,22 +841,8 @@
 	    rb_print_undef(klass, def, 0);
 	}
     }
-    if (FL_TEST(klass, FL_SINGLETON)) {
-	singleton = rb_iv_get(klass, "__attached__");
-    }
 
     rb_add_method_me(klass, name, orig_me, orig_me->flag);
-
-    if (!ruby_running) return;
-
-    rb_clear_cache_by_id(name);
-
-    if (singleton) {
-	rb_funcall(singleton, singleton_added, 1, ID2SYM(name));
-    }
-    else {
-	rb_funcall(klass, added, 1, ID2SYM(name));
-    }
 }
 
 /*
Index: test/ruby/test_module.rb
===================================================================
--- test/ruby/test_module.rb	(revision 24867)
+++ test/ruby/test_module.rb	(revision 24868)
@@ -769,9 +769,21 @@
       end
       def f
       end
+      alias g f
+      attr_reader :a
+      attr_writer :a
     end
     assert_equal :f, memo.shift
-    assert_equal mod.instance_methods(false), memo.shift
+    assert_equal [:f], memo.shift, '[ruby-core:25536]'
     assert_equal mod.instance_method(:f), memo.shift
+    assert_equal :g, memo.shift
+    assert_equal [:f, :g], memo.shift
+    assert_equal mod.instance_method(:f), memo.shift
+    assert_equal :a, memo.shift
+    assert_equal [:f, :g, :a], memo.shift
+    assert_equal mod.instance_method(:a), memo.shift
+    assert_equal :a=, memo.shift
+    assert_equal [:f, :g, :a, :a=], memo.shift
+    assert_equal mod.instance_method(:a=), memo.shift
   end
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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