From: shugo@... (Shugo Maeda) Date: 1998-03-08T21:47:24+09:00 Subject: [ruby-dev:1608] Re: IO#putc/Kernel#putc/Kernel#putchar 前田です。 In message "[ruby-dev:1601] Re: IO#putc/Kernel#putc/Kernel#putchar" Shugo Maeda wrote: ||他にも問題があるかもしれませんが、とりあえず動いているようです。 | |やはり問題がありました。 |このパッチへのパッチを付けます。 すみません、またパッチです。 # finalはボツになりそうな気がするのですが一応修正しときます(^^; -- 前田 修吾 --- eval.c~ Sat Mar 7 02:08:46 1998 +++ eval.c Sun Mar 8 21:13:13 1998 @@ -231,27 +231,21 @@ NameError("can't change visibility of final method `%s' in `%s'", rb_id2name(name), rb_class2name(klass)); } + if (noex == NOEX_PUBLIC) { - if (body->nd_noex & NOEX_PRIVATE) { - if (klass == origin) { - body->nd_noex ^= NOEX_PRIVATE; - } - else { - rb_clear_cache_by_id(name); - rb_add_method(klass, name, NEW_ZSUPER(), - body->nd_noex ^ NOEX_PRIVATE); - } - } - } else { - if ((body->nd_noex & noex) == 0) { - if (klass == origin) { - body->nd_noex |= noex; - } - else { - rb_clear_cache_by_id(name); - rb_add_method(klass, name, NEW_ZSUPER(), body->nd_noex | noex); - } - } + noex = NOEX_PRIVATE; + if ((body->nd_noex & noex) == 0) return; + } + else { + if (body->nd_noex & noex) return; + } + + if (klass == origin) { + body->nd_noex ^= noex; + } + else { + rb_clear_cache_by_id(name); + rb_add_method(klass, name, NEW_ZSUPER(), body->nd_noex ^ noex); } }