山本です。 >確認ですが,tcltklib はいつのものでしょうか. >今日 (1/25) に commit していますが,そこで行った修正は >以前にメールに添付したパッチよりも更に SEGV の原因を潰してあります. すみません、ruby 1.8.2 (2004-12-24) [i386-bccwin32] という表記になって いて紛らわしかったです。v_1_8_2 + tcltklib, tk のみ最新版という構成です。 HEADでも同じでした。 E:/ruby-cvs/ruby/.ext/tk.rb:1180: [BUG] Segmentation fault ruby 1.9.0 (2005-01-25) [i386-bccwin32] ext/tcltklib/tcltklib.c(ip_free) の 3404 行目 if (Tcl_GetCommandInfo(ptr->ip, finalize_hook_name, &info)) { で落ちているようです。 また試しに順番を入れ替えてみたら落ちなくなりましたが・・・意味ない だろうなあ。 Index: tcltklib.c =================================================================== RCS file: /src/ruby/ext/tcltklib/Attic/tcltklib.c,v retrieving revision 1.75 diff -u -w -b -p -r1.75 tcltklib.c --- tcltklib.c 25 Jan 2005 05:09:17 -0000 1.75 +++ tcltklib.c 25 Jan 2005 14:42:24 -0000 @@ -3393,17 +3393,17 @@ ip_free(ptr) Tcl_ResetResult(ptr->ip); + if (Tcl_GetCommandInfo(ptr->ip, finalize_hook_name, &info)) { + DUMP2("call finalize hook proc '%s'", finalize_hook_name); + Tcl_Eval(ptr->ip, finalize_hook_name); + } + if (Tcl_Eval(ptr->ip, DEF_CANCEL_AFTER_SCRIPTS_PROC) == TCL_OK) { if (Tcl_GetCommandInfo(ptr->ip, CANCEL_AFTER_SCRIPTS, &info)) { DUMP2("call cancel after scripts proc '%s'", CANCEL_AFTER_SCRIPTS); Tcl_Eval(ptr->ip, CANCEL_AFTER_SCRIPTS); } - } - - if (Tcl_GetCommandInfo(ptr->ip, finalize_hook_name, &info)) { - DUMP2("call finalize hook proc '%s'", finalize_hook_name); - Tcl_Eval(ptr->ip, finalize_hook_name); } /* del_root(ptr->ip); */