logo       
Google Custom Search
    AddThis Social Bookmark Button

[ruby-dev:27890] rb_funcall2() for protected method: msg#00275

Subject: [ruby-dev:27890] rb_funcall2() for protected method
なかだです。

rb_funcall2()を使うとprivate methodも呼べるのに、protected
methodは呼べないというのは、ちょっとヘンな感じがします。


Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.846
diff -U2 -p -u -r1.846 eval.c
--- eval.c      11 Nov 2005 17:11:05 -0000      1.846
+++ eval.c      30 Nov 2005 08:03:26 -0000
@@ -5769,11 +5769,11 @@ rb_call(VALUE klass, VALUE recv, ID mid,
     }
 
-    if (mid != missing) {
+    if (mid != missing && scope == 0) {
        /* receiver specified form for private method */
-       if ((noex & NOEX_PRIVATE) && scope == 0)
+       if (noex & NOEX_PRIVATE)
            return method_missing(recv, mid, argc, argv, CSTAT_PRIV);
 
        /* self must be kind of a specified form for protected method */
-       if ((noex & NOEX_PROTECTED)) {
+       if (noex & NOEX_PROTECTED) {
            VALUE defined_class = klass;
 


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦





Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>