[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12129] eval.c: NODE_FOR

From: toyofuku@...
Date: 2001-01-29 09:05:50 UTC
List: ruby-dev #12129
  豊福です。eval.c 勉強中。

    def bar
      for i in (yield)
        p "for block"
        [1]
      end
    end
    
    bar { p "bar block"; [1, 2, 3] }
が
    "for block"
    "for block"
となりますが(ruby 1.6.1)

*** eval.c.orig Wed Sep 27 12:43:12 2000
--- eval.c      Mon Jan 29 17:36:19 2001
***************
*** 2162,2169 ****
                    int line = ruby_sourceline;

                    _block.flags &= ~BLOCK_D_SCOPE;
-                   recv = rb_eval(self, node->nd_iter);
                    PUSH_ITER(ITER_PRE);
                    ruby_sourcefile = file;
                    ruby_sourceline = line;
                    result = rb_call(CLASS_OF(recv),recv,each,0,0,0);
--- 2162,2171 ----
                    int line = ruby_sourceline;

                    _block.flags &= ~BLOCK_D_SCOPE;
                    PUSH_ITER(ITER_PRE);
+                   BEGIN_CALLARGS;
+                   recv = rb_eval(self, node->nd_iter);
+                   END_CALLARGS;
                    ruby_sourcefile = file;
                    ruby_sourceline = line;
                    result = rb_call(CLASS_OF(recv),recv,each,0,0,0);
でしょうか。

  それからここの
    ruby_sourcefile = file;
    ruby_sourceline = line;
はいらなそうな気もするのですが必要になるのはどういう
ケースですか。
---
                                豊福
                                toyofuku@juice.or.jp

In This Thread

Prev Next