[#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:12130] Re: string#index, gsub, []= のバグ?

From: "Nobuyoshi.Nakada" <nobu.nakada@...>
Date: 2001-01-29 09:50:22 UTC
List: ruby-dev #12130
なかだです。

At Mon, 29 Jan 2001 08:25:58 +0900
matz@zetabits.com (Yukihiro Matsumoto) wrote:
> |んで、最後の部分は
> |
> |    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;
> |
> |でも良いのかな?よくわからなかった。
> 
> こちらはまずいような気がします。

  って、そうなっちゃってませんか、1.7 の方は。

Index: string.c
===================================================================
RCS file: /home/cvs/ruby/src/string.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -2 -p -r1.54 -r1.55
--- string.c	2001/01/15 07:00:54	1.54
+++ string.c	2001/01/29 05:10:42	1.55
@@ -1295,9 +1295,9 @@ str_gsub(argc, argv, str, bang)
 	OBJ_INFECT(dup, str);
 	str = (VALUE)dup;
-	dup->orig = 0;
     }
     RSTRING(str)->ptr = buf;
     RSTRING(str)->len = len = bp - buf;
     RSTRING(str)->ptr[len] = '\0';
+    RSTRING(str)->orig = 0;
 
     if (tainted) OBJ_TAINT(str);


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread