[#39548] [Bug #2291] Net::FTPでソケットをオープンする前にbinary=を呼び出すと落ちる — Akira Matsuda <redmine@...>

Bug #2291: Net::FTPでソケットをオープンする前にbinary=を呼び出すと落ちる

10 messages 2009/10/27

[#39592] infinite recursive call to C function — Yusuke ENDOH <mame@...>

遠藤です。

17 messages 2009/10/30
[#39596] Re: infinite recursive call to C function — Yukihiro Matsumoto <matz@...> 2009/10/30

まつもと ゆきひろです

[#39599] Re: infinite recursive call to C function — Nobuyoshi Nakada <nobu@...> 2009/11/02

なかだです。

[#39601] Re: infinite recursive call to C function — Yukihiro Matsumoto <matz@...> 2009/11/02

まつもと ゆきひろです

[ruby-dev:39589] Re: [ruby-cvs:32774] Ruby:r25556 (trunk): * array.c (rb_ary_to_ary): do not use #respond_to? to detect

From: Yukihiro Matsumoto <matz@...>
Date: 2009-10-30 09:40:53 UTC
List: ruby-dev #39589
まつもと ゆきひろです

In message "Re: [ruby-dev:39585] Re: [ruby-cvs:32774] Ruby:r25556 (trunk): * array.c (rb_ary_to_ary): do not use #respond_to? to detect"
    on Fri, 30 Oct 2009 16:04:00 +0900, Yukihiro Matsumoto <matz@ruby-lang.org> writes:

||この変更で、to_aryやto_str内部でのNoMethodErrorがわからなくなっ
||ています。

|気にはなっていたので、歓迎します。コミットしてください。

と思ったのですが、

test_range_numeric_string(TestRange) [/home/matz/work/ruby/test/ruby/test_range.rb:18]
<["9", "10"]> expected but was
<[]>.

というエラーが増えていました。これはSimpleDelegatorのto_str
メソッドがmethod_missingで実装されているため、このコミットに
よって、method_missingが呼ばれなくなってしまった、ということ
のようです。

うーむ。

  * revertしてrescueの条件を厳しくする(receiverとidが一致し
    た場合だけキャッチする、とか)

  * method_missingが再定義されている時にはそれを呼ぶ。ちゃん
    と動作するかどうかはよくわからない

いずれにせよ、現状ではまずそうです。

In This Thread