From: nobu@... Date: 2005-08-30T06:47:55+09:00 Subject: [ruby-dev:26908] Re: multiplying empty string なかだです。 At Tue, 30 Aug 2005 04:58:48 +0900, Tanaka Akira wrote in [ruby-dev:26907]: > > |・ "" * 0x7fffffff に時間がかかるのはいけてない > > > > せっかくですからコミットしてください。 > > 以前、[ruby-dev:19980] で話が出た時には、"" * -1 などがエラーでなくな > るのを気にする人がいたようです。 なるほど。 > > |また、 "x".taint * 0 がtaintedにならないのは意図的でしょうか。 > > > > ええ。空文字列は情報がないのでtaintしなくても良いだろうとの > > 判断です。反論があれば聞きます。 > > taint は避けているため経験に基づいて思っているわけではありませんが、文 > 字列中に展開した時に単語の数が変わるのが嫌っぽい気もしないでもないです。 taintによって単語数が変わることはないと思いますが。エラーになる かどうか、ということですか? Index: string.c =================================================================== RCS file: /cvs/ruby/src/ruby/string.c,v retrieving revision 1.231 diff -U2 -p -r1.231 string.c --- string.c 23 Jul 2005 01:02:10 -0000 1.231 +++ string.c 29 Aug 2005 21:43:31 -0000 @@ -418,7 +418,7 @@ rb_str_times(str, times) } - str2 = rb_str_new5(str,0, RSTRING(str)->len*len); - for (i=0; iptr+(i*RSTRING(str)->len), + str2 = rb_str_new5(str,0, len *= RSTRING(str)->len); + for (i = 0; i < len; i += RSTRING(str)->len) { + memcpy(RSTRING(str2)->ptr + i, RSTRING(str)->ptr, RSTRING(str)->len); } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦