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

ruby-changes:16704

From: naruse <ko1@a...>
Date: Wed, 21 Jul 2010 14:01:12 +0900 (JST)
Subject: [ruby-changes:16704] Ruby:r28700 (trunk): * vm_method.c (rb_method_boundp): revert r28543, r28564.

naruse	2010-07-21 14:00:53 +0900 (Wed, 21 Jul 2010)

  New Revision: 28700

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

  Log:
    * vm_method.c (rb_method_boundp): revert r28543, r28564.
      They may be merged in Ruby 2.0. [ruby-core:31217]

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28699)
+++ ChangeLog	(revision 28700)
@@ -1,3 +1,8 @@
+Wed Jul 21 13:57:37 2010  NARUSE, Yui  <naruse@r...>
+
+	* vm_method.c (rb_method_boundp): revert r28543, r28564.
+	  They may be merged in Ruby 2.0. [ruby-core:31217]
+
 Wed Jul 21 13:37:35 2010  Marc-Andre Lafortune  <ruby-core@m...>
 
 	* lib/uri/common.rb: Have URI#route_to, URI#route_from accept
Index: vm_method.c
===================================================================
--- vm_method.c	(revision 28699)
+++ vm_method.c	(revision 28700)
@@ -565,19 +565,18 @@
 {
     rb_method_entry_t *me = rb_method_entry(klass, id);
 
-    if (!me) return 0; 
-    if (ex & ~NOEX_RESPONDS) { /* pub */
-	if (me->flag & NOEX_PRIVATE) return 0;
-	if (ex & NOEX_RESPONDS) {
-	    if (me->flag & NOEX_PROTECTED) return 0;
+    if (me != 0) {
+	if ((ex & ~NOEX_RESPONDS) && (me->flag & NOEX_PRIVATE)) {
+	    return FALSE;
 	}
+	if (!me->def) return 0;
+	if (me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) {
+	    if (ex & NOEX_RESPONDS) return 2;
+	    return 0;
+	}
+	return 1;
     }
-    if (!me->def) return 0;
-    if (me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) {
-	if (ex & NOEX_RESPONDS) return 2;
-	return 0;
-    }
-    return 1;
+    return 0;
 }
 
 void
Index: test/ruby/test_method.rb
===================================================================
--- test/ruby/test_method.rb	(revision 28699)
+++ test/ruby/test_method.rb	(revision 28700)
@@ -371,7 +371,7 @@
 
     assert_equal(true,  respond_to?(:mv1))
     assert_equal(false, respond_to?(:mv2))
-    assert_equal(false, respond_to?(:mv3))
+    assert_equal(true, respond_to?(:mv3))
 
     assert_equal(true,  respond_to?(:mv1, true))
     assert_equal(true,  respond_to?(:mv2, true))
@@ -393,7 +393,7 @@
 
     assert_equal(true,  v.respond_to?(:mv1))
     assert_equal(false, v.respond_to?(:mv2))
-    assert_equal(false, v.respond_to?(:mv3))
+    assert_equal(true, v.respond_to?(:mv3))
 
     assert_equal(true,  v.respond_to?(:mv1, true))
     assert_equal(true,  v.respond_to?(:mv2, true))

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

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