永井@知能.九工大です. From: 門脇 修司 <kadowaki.shuji / jp.fujitsu.com> Subject: [ruby-list:46810] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生 Date: Mon, 25 Jan 2010 13:47:31 +0900 Message-ID: <20100125134722.A3B1.DA7C2934 / jp.fujitsu.com> > tktable.rbの変更をやり直しましたところ、動くようになりました。 > (GC.disable/enableを追加することでsegmentation faultが発生しなく > なった) 良かったです. > このtktable.rbの変更を当面の回避策として使い続けて良いでしょうか? メモリ消費が少し大きくなるかもしれませんが, 当面はそれでかまわないと思います. 問題となっている _setup_subst_table() は, イベントのコールバック処理などにおける Tcl/Tk の % 置換を どのようにして Ruby のオブジェクトに変換するかを定義したテーブルを 作成するためのものです. % 置換は entry widget の内容の validation などでも用いられますから, _setup_subst_table() はいくつものクラスで使用されています. そのため,tktable.rb 以外でも同じように SEGV する可能性がありますが, それらについても応急処置として GC.disable/GC.enable で囲んでください. もちろん,今後 _setup_subst_table() のバグは修正しますが, 修正は SVN 上の trunk と ruby_1_8 に対して行なわれます. ruby 1.8.7 等へのバックポート (パッチリリースでの fix) がどうなるかは それらの branch の管理者次第となりますことを御了承ください. -- 永井 秀利 (nagai / ai.kyutech.ac.jp) 九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門