[#39606] [Feature:trunk] Dir instance methods for relative path — Nobuyoshi Nakada <nobu@...>

なかだです。

15 messages 2009/11/02
[#39607] Re: [Feature:trunk] Dir instance methods for relative path — Yukihiro Matsumoto <matz@...> 2009/11/02

まつもと ゆきひろです

[#39611] Re: [Feature:trunk] Dir instance methods for relative path — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/02

kosakiです

[#39660] [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Yusuke ENDOH <mame@...>

遠藤です。

14 messages 2009/11/11
[#39661] Re: [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Tanaka Akira <akr@...> 2009/11/11

In article <e0b1e5700911110537u2aacf835pc0aea13d89a92cef@mail.gmail.com>,

[#39685] [Feature #2366] private constant — Yusuke Endoh <redmine@...>

Feature #2366: private constant

23 messages 2009/11/14
[#39689] [Feature #2366] private constant — Yusuke Endoh <redmine@...> 2009/11/14

チケット #2366 が更新されました。 (by Yusuke Endoh)

[#40207] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/28

遠藤です。

[#40239] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40243] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/29

遠藤です。

[#40246] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40247] Re: [Feature #2366] private constant — "NARUSE, Yui" <naruse@...> 2010/01/29

成瀬です。

[#39720] hidden objectって? — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

15 messages 2009/11/18
[#39721] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/18

まつもと ゆきひろです

[#39726] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39727] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/19

まつもと ゆきひろです

[#39730] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39735] [Bug:trunk] r25230 causes SEGV arround Marshal — "NARUSE, Yui" <naruse@...> 2009/11/19

以下のコミット以降、後述の現象が発生するそうです。

[#39755] RbConfig.rubybin — Tanaka Akira <akr@...>

ruby コマンドのパス名を返す RbConfig.rubybin というメソッド

18 messages 2009/11/23
[#39756] Re: RbConfig.rubybin — Kouhei Sutou <kou@...> 2009/11/23

須藤です。

[#39814] Re: RbConfig.rubybin — Tanaka Akira <akr@...> 2009/11/30

In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39815] Re: RbConfig.rubybin — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/30

> In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39796] バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

14 messages 2009/11/27
[#39800] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/27

まつもと ゆきひろです

[#39803] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/27

けいじゅ@いしつかです.

[#39805] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[#39806] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/28

けいじゅ@いしつかです.

[#39807] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[ruby-dev:39766] Re: [Bug #2395] 可視性の変更による alias されたメソッドの無効化

From: Yusuke ENDOH <mame@...>
Date: 2009-11-24 12:41:47 UTC
List: ruby-dev #39766
遠藤です。

2009年11月24日13:09 Yusuke ENDOH <mame@tsg.ne.jp>:
> スーパークラスのメソッドの public/private を ZSUPER で実装することが
> 原因だと思いますが、どう直したものでしょうね。ZSUPER を alias する時は
> メソッド実体を複製する?

こっちを実装しました。
[ruby-dev:39760] のコードだと :foo, :foo と出力するようになります。

このパッチを当てると original_id と違う名前の ZSUPER なメソッドは発生
し得なくなるはずなので、[ruby-dev:39761] のパッチは不要になります。

make check でもエラーは増えなかったので、反対意見が無ければコミット
しようと思います。


diff --git a/vm_method.c b/vm_method.c
index 215db50..3b86713 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -858,7 +858,9 @@ rb_method_definition_eq(const
rb_method_definition_t *d1, const rb_method_defini
 void
 rb_alias(VALUE klass, ID name, ID def)
 {
+    VALUE target_klass = klass;
     rb_method_entry_t *orig_me;
+    rb_method_flag_t flag = NOEX_UNDEF;

     if (NIL_P(klass)) {
 	rb_raise(rb_eTypeError, "no class to make alias");
@@ -869,6 +871,7 @@ rb_alias(VALUE klass, ID name, ID def)
 	rb_secure(4);
     }

+  again:
     orig_me = search_method(klass, def);

     if (UNDEFINED_METHOD_ENTRY_P(orig_me)) {
@@ -877,8 +880,15 @@ rb_alias(VALUE klass, ID name, ID def)
 	    rb_print_undef(klass, def, 0);
 	}
     }
+    if (orig_me->def->type == VM_METHOD_TYPE_ZSUPER) {
+	klass = RCLASS_SUPER(klass);
+	def = orig_me->def->original_id;
+	flag = orig_me->flag;
+	goto again;
+    }

-    rb_add_method_me(klass, name, orig_me, orig_me->flag);
+    if (flag == NOEX_UNDEF) flag = orig_me->flag;
+    rb_add_method_me(target_klass, name, orig_me, flag);
 }

 /*

-- 
Yusuke ENDOH <mame@tsg.ne.jp>

In This Thread