[前][次][番号順一覧][スレッド一覧]

ruby-changes:16834

From: mame <ko1@a...>
Date: Mon, 2 Aug 2010 00:44:56 +0900 (JST)
Subject: [ruby-changes:16834] Ruby:r28829 (ruby_1_9_2): * util.c (ruby_add_suffix): fixed a bug returning uninitialized value.

mame	2010-08-02 00:44:38 +0900 (Mon, 02 Aug 2010)

  New Revision: 28829

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28829

  Log:
    * util.c (ruby_add_suffix): fixed a bug returning uninitialized value.
      This is the essential part from r28794 of trunk.

  Modified files:
    branches/ruby_1_9_2/ChangeLog
    branches/ruby_1_9_2/util.c

Index: ruby_1_9_2/ChangeLog
===================================================================
--- ruby_1_9_2/ChangeLog	(revision 28828)
+++ ruby_1_9_2/ChangeLog	(revision 28829)
@@ -1,3 +1,8 @@
+Mon Aug  2 00:03:18 2010  Yusuke Endoh  <mame@t...>
+
+	* util.c (ruby_add_suffix): fixed a bug returning uninitialized value.
+	  This is the essential part from r28794 of trunk.
+
 Mon Jul 26 13:01:25 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* vm.c (rb_thread_mark): should mark iseq itself other than normal
Index: ruby_1_9_2/util.c
===================================================================
--- ruby_1_9_2/util.c	(revision 28828)
+++ ruby_1_9_2/util.c	(revision 28829)
@@ -292,7 +292,10 @@
 
     if (*suffix == '.') {        /* Style 1 */
 	if (ext) {
-	    if (strEQ(ext, suffix)) goto fallback;
+	    if (strEQ(ext, suffix)) {
+		extlen = sizeof(suffix1) - 1; /* suffix2 must be same length */
+		suffix = strEQ(suffix, suffix1) ? suffix2 : suffix1;
+	    }
 	    slen = ext - name;
 	}
 	rb_str_resize(str, slen);
@@ -332,9 +335,9 @@
 	  fallback:
 	    (void)memcpy(p, !ext || strEQ(ext, suffix1) ? suffix2 : suffix1, 5);
 	}
+	rb_str_resize(str, strlen(buf));
+	memcpy(RSTRING_PTR(str), buf, RSTRING_LEN(str));
     }
-    rb_str_resize(str, strlen(buf));
-    memcpy(RSTRING_PTR(str), buf, RSTRING_LEN(str));
 }
 
 static int

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]