なかだです。

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はできる。 中田 伸悦