2011年7月8日19:34 Kenta Murata <muraken / gmail.com>:
> むらたです。
>
>
> On Thursday, July 7, 2011 at 9:49 PM, Motohiro KOSAKI wrote:
>
>> 直感的には、関数の最後でRB_GC_GUARD()しないといけない気がしますがどう思います? > むらけんさん
>
> z = bignew(zn, RBIGNUM_SIGN(x));
>
> ここで GC が走る可能性があって、そういう場合に x をガードする事が目的なんだと思います。
> ですから、bigadd_int の最初に RB_GC_GUARD して良いです。

あ、すいません。昨日僕のいない間に #ruby-jaで議論して後ろに移動させるという
結論になったみたいです。

22:49:17 <n0kada> 途中に付けても無駄になることがある
22:50:09 <n0kada> 最後じゃなくてもいいけど、ガードが必要な部分のあとにないとダメ
22:50:41 <tal0> 結局そういう事になったのか
22:51:41 <ksmakoto> では、私のパッチよりもっとあとでないとまずいですね
22:51:47 <n0kada> 経験則的に
22:52:25 <tal0> 前に置いてるの沢山ありますよ たしか。
22:52:41 <ksmakoto> xdsを参照してる最後の場所より後だから、同じ関数のwhileの後
22:53:15 <n0kada> RB_GC_GUARDをもうちょい工夫すればいいのかなぁ
22:53:27 <ksmakoto> 全く同じ構造のコードだから bigsub_int にも要るかな
22:53:27 <tal0> [ruby-dev:40942] matzにこういわれたので、
22:53:28 {unak_away} http://mla.n-z.jp/?ruby-dev=40942
22:53:48 <tal0> VC向けのRB_GC_GUARDは試行錯誤した
22:54:16 <ksmakoto> フロー解析して最適化されちゃうなら、工夫じゃどうにもならなさそうな
22:54:35 <tal0> 経験的にOKとしかいいようがない。