[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12118] Re: string#index, gsub, []= のバグ?

From: matz@... (Yukihiro Matsumoto)
Date: 2001-01-28 23:25:58 UTC
List: ruby-dev #12118
まつもと ゆきひろです

In message "[ruby-dev:12112] Re: string#index, gsub, []= のバグ?"
    on 01/01/29, Koji Arai <JCA02266@nifty.ne.jp> writes:

|表面的な判断しかできませんが、orig=0にする条件が逆じゃありま
|せんか?

そうですね。

|んで、最後の部分は
|
|    if (bang) {
|	if (str_independent(str)) {
|	    free(RSTRING(str)->ptr);
|	}
|    }
|    else {
|	NEWOBJ(dup, struct RString);
|	OBJSETUP(dup, rb_cString, T_STRING);
|	OBJ_INFECT(dup, str);
|	str = (VALUE)dup;
|    }
|    RSTRING(str)->ptr = buf;
|    RSTRING(str)->len = len = bp - buf;
|    RSTRING(str)->ptr[len] = '\0';
|    RSTRING(str)->orig = 0;
|
|でも良いのかな?よくわからなかった。

こちらはまずいような気がします。

|「str_independent(str) が真なら RSTRING(str)->orig の中身は0
|でよい」は成り立ちますか?

ええと、「いいえ」です。

In message "[ruby-dev:12114] Re: string#index, gsub,[]= のバグ?"
    on 01/01/29, Koji Arai <JCA02266@nifty.ne.jp> writes:

|STR_NO_ORIG がセットされているならorigに値はあってもオリジナ
|ルのStringじゃない。
|
|という理解で良いのでしょうか?

はい。

|今回の場合、RSTRING(str)->ptr を置き換えるから やっぱり orig = 0
|にしても良いような。。良くないような。。難しい。

gsubの修正結果がorigが指している"P"で展開されたポインタ値を
保存していないかどうかはわかりませんから、残しておく必要があ
ります。

                                まつもと ゆきひろ /:|)

In This Thread