From: nobu@... Date: 2004-10-26T09:14:33+09:00 Subject: [ruby-dev:24596] Re: unpack("p") dumps core なかだです。 At Tue, 26 Oct 2004 00:00:00 +0900, Tanaka Akira wrote in [ruby-dev:24594]: > 次のようにすると core を吐きます。 > > % ./ruby -e ' > s = ["abc"].pack("p") > s[2] = "aaa" > p s.unpack("p") > ' str_independent()ではSTR_ASSOCを見ていないので(STR_NO_ORIGから 変更されたとき以来?)、rb_str_modify()ではSTR_ASSOCがクリアされ ていないようです。また、gsub!やsucc!ではstr_independent()によっ てptrをfreeしているので、["abc"].pack("p").gsub!(/.*/, '')など とするとメモリリークしそうです。 一方で、rb_str_cat()やrb_str_append()など末尾に追加するだけのも のではSTR_ASSOCは影響を及ぼさないので、単にSTR_ASSOCを見るよう にしてしまうのも芳しくなさそうです。 # というか、str_gsub()のbufって例外のときにも大丈夫? -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦