From: "K.Kosako" Date: 2002-03-18T17:53:58+09:00 Subject: [ruby-dev:16465] Re: block local var Yukihiro Matsumotoさんの<1016440781.021131.5944.nullmailer@ev.netlab.jp>から > えーと、local_push()で > > lvtbl->dyna_vars > > に元のruby_dyna_varsを保存して、local_pop()で復旧させるって > 話ですよね。で、dvar_push()の結果を反映させないってパッチだ > と認識したのですが間違ってる? その通りです。 > 私の読解が間違ってないとすれば、コンパイル中保護すべきデータ > はぜんぶruby_dyna_varsからアクセスできるんで大丈夫ではないか > と。 local_push(1)の呼び出しで、 ruby_dyna_vars = 0にセットしているので、それ以前にruby_dyna_varsに 値があったときリンクが切れるので問題ではないかと。 $$ = dyna_push(); としている部分でスタック領域に乗っているのなら大丈夫と思いますが、 yaccではそうなっているのでしょうか? -- 小迫@ソフネック 渋谷区恵比寿1-15-1