From: "H.Yamamoto" Date: 2005-11-06T21:33:42+09:00 Subject: [ruby-dev:27642] Re: tcltkstub cause SEGV 山本です。 >> CVS HEADで、tcltkstubsを有効にしてコンパイルすると >> require 'tk' したときにSEGVします(mswin32)。 >> >> tcltkstubsを有効にしなかったときにはSEGVしません。使用 >> しているTcl/TkはActiveTcl 8.4.10 です。また、同じ環境で >> 1.8.4-preview1ではtcltkstubsを有効にしても大丈夫でした。 > >たぶん昨日のforwardingの影響じゃないかと思いますが。 いや、ruby/tk のバグだと思います。私の手元ではこれで直ったので コミットしておきます。 * ext/tk/stubs.c (ruby_tcl_create_ip_and_stubs_init): should touch interpreter after initialization is done. Index: stubs.c =================================================================== RCS file: /src/ruby/ext/tk/stubs.c,v retrieving revision 1.3 diff -u -w -b -p -r1.3 stubs.c --- stubs.c 4 Aug 2005 09:41:55 -0000 1.3 +++ stubs.c 6 Nov 2005 01:04:33 -0000 @@ -237,14 +237,14 @@ ruby_tcl_create_ip_and_stubs_init(st) return (Tcl_Interp*)NULL; } - _nativethread_consistency_check(tcl_ip); - if (!Tcl_InitStubs(tcl_ip, "8.1", 0)) { if (st) *st = FAIL_Tcl_InitStubs; (*p_Tcl_DeleteInterp)(tcl_ip); return (Tcl_Interp*)NULL; } + _nativethread_consistency_check(tcl_ip); + return tcl_ip; } }