From: matz@... (Yukihiro Matsumoto) Date: 2003-08-04T14:30:43+09:00 Subject: [ruby-dev:21118] Re: Method#to_proc まつもと ゆきひろです In message "[ruby-dev:21116] Re: Method#to_proc" on 03/08/04, nobu.nakada@nifty.ne.jp writes: |> デフォルトSVALUEだとenum.cなどがQundefが渡されることを想定し |> ておらず、落ちます。デフォルトでは引数0でnilが渡るようにしよ |> うと思ってました。元の問題は別の形で解決すべきでしょう。 | |間にbmcall()が入るので、大丈夫そうに見えますが。 [ruby-dev:21108]のパッチを当てて ruby -e 'class Foo; def each; yield; end; include Enumerable; end; p Foo.new.to_a' を実行すると落ちます。 適切と思われる修正はこっちです(コミットしました)。 --- eval.c 3 Aug 2003 14:56:54 -0000 1.504 +++ eval.c 4 Aug 2003 05:28:50 -0000 1.505 @@ -7606,2 +7606,3 @@ method_proc(method) nd_set_line(bdata->body, nd_line(mdata->body)); + bdata->body->nd_state = YIELD_FUNC_SVALUE;