From: nobu@... Date: 2004-12-28T13:42:15+09:00 Subject: [ruby-dev:25361] Re: String#center dumps core なかだです。 At Mon, 27 Dec 2004 17:14:04 +0900, Tanaka Akira wrote in [ruby-dev:25351]: > > |> -e:10: [BUG] Segmentation fault > > |> ruby 1.9.0 (2004-12-26) [i686-linux] > > | > > |こんなとこでどうでしょう。 > > > > 内部的なStringバッファを保護するのはlocktmp(), unlocktmp()が > > 良いのではないでしょうか。 > > klass = 0 だと、callcc が使えそうですね。 単に、引数の変換のあとにバッファを作ればよさそうな気がします。 Index: string.c =================================================================== RCS file: /cvs/ruby/src/ruby/string.c,v retrieving revision 1.228 diff -U2 -p -r1.228 string.c --- string.c 9 Dec 2004 05:38:45 -0000 1.228 +++ string.c 28 Dec 2004 04:36:41 -0000 @@ -4506,5 +4506,4 @@ rb_str_justify(argc, argv, str, jflag) width = NUM2LONG(w); if (width < 0 || RSTRING(str)->len >= width) return rb_str_dup(str); - res = rb_str_new5(str, 0, width); if (argc == 2) { StringValue(pad); @@ -4515,4 +4514,5 @@ rb_str_justify(argc, argv, str, jflag) } } + res = rb_str_new5(str, 0, width); p = RSTRING(res)->ptr; if (jflag != 'l') { -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦