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

ruby-changes:10836

From: shyouhei <ko1@a...>
Date: Wed, 18 Feb 2009 22:08:22 +0900 (JST)
Subject: [ruby-changes:10836] Ruby:r22406 (ruby_1_8_7): merge revision(s) 20360:20363:

shyouhei	2009-02-18 22:08:13 +0900 (Wed, 18 Feb 2009)

  New Revision: 22406

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

  Log:
    merge revision(s) 20360:20363:
    * ext/gdbm/gdbm.c: do not set members of RSTRING(str) directly.
      [ruby-dev:37182]
    * ext/gdbm/gdbm.c (rb_gdbm_nextkey): fix memory leak.

  Modified files:
    branches/ruby_1_8_7/ChangeLog
    branches/ruby_1_8_7/ext/gdbm/gdbm.c
    branches/ruby_1_8_7/version.h

Index: ruby_1_8_7/ext/gdbm/gdbm.c
===================================================================
--- ruby_1_8_7/ext/gdbm/gdbm.c	(revision 22405)
+++ ruby_1_8_7/ext/gdbm/gdbm.c	(revision 22406)
@@ -303,14 +303,10 @@
     if (val.dptr == 0)
         return Qnil;
 
-    str = rb_obj_alloc(rb_cString);
-    RSTRING(str)->len = val.dsize;
-    RSTRING(str)->aux.capa = val.dsize;
-    RSTRING(str)->ptr = REALLOC_N(val.dptr,char,val.dsize+1);
-    RSTRING(str)->ptr[val.dsize] = '\0';
-
+    str = rb_str_new(val.dptr, val.dsize);
+    free(val.dptr);
     OBJ_TAINT(str);
-    return (VALUE)str;
+    return str;
 }
 
 static VALUE
@@ -349,12 +345,8 @@
     if (key.dptr == 0)
         return Qnil;
 
-    str = rb_obj_alloc(rb_cString);
-    RSTRING(str)->len = key.dsize;
-    RSTRING(str)->aux.capa = key.dsize;
-    RSTRING(str)->ptr = REALLOC_N(key.dptr,char,key.dsize+1);
-    RSTRING(str)->ptr[RSTRING(str)->len] = '\0';
-
+    str = rb_str_new(key.dptr, key.dsize);
+    free(key.dptr);
     OBJ_TAINT(str);
     return str;
 }
@@ -373,12 +365,8 @@
     if (key2.dptr == 0)
         return Qnil;
 
-    str = rb_obj_alloc(rb_cString);
-    RSTRING(str)->len = key2.dsize;
-    RSTRING(str)->aux.capa = key2.dsize;
-    RSTRING(str)->ptr = REALLOC_N(key2.dptr,char,key2.dsize+1);
-    RSTRING(str)->ptr[RSTRING(str)->len] = '\0';
-
+    str = rb_str_new(key2.dptr, key2.dsize);
+    free(key2.dptr);
     OBJ_TAINT(str);
     return str;
 }
Index: ruby_1_8_7/ChangeLog
===================================================================
--- ruby_1_8_7/ChangeLog	(revision 22405)
+++ ruby_1_8_7/ChangeLog	(revision 22406)
@@ -1,3 +1,10 @@
+Wed Feb 18 22:07:44 2009  Kazuhiro NISHIYAMA  <zn@m...>
+
+	* ext/gdbm/gdbm.c: do not set members of RSTRING(str) directly.
+	  [ruby-dev:37182]
+
+	* ext/gdbm/gdbm.c (rb_gdbm_nextkey): fix memory leak.
+
 Tue Feb 17 11:58:58 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* string.c (str_independent): no independent string points null_str.
Index: ruby_1_8_7/version.h
===================================================================
--- ruby_1_8_7/version.h	(revision 22405)
+++ ruby_1_8_7/version.h	(revision 22406)
@@ -1,15 +1,15 @@
 #define RUBY_VERSION "1.8.7"
-#define RUBY_RELEASE_DATE "2009-02-17"
+#define RUBY_RELEASE_DATE "2009-02-18"
 #define RUBY_VERSION_CODE 187
-#define RUBY_RELEASE_CODE 20090217
-#define RUBY_PATCHLEVEL 123
+#define RUBY_RELEASE_CODE 20090218
+#define RUBY_PATCHLEVEL 124
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8
 #define RUBY_VERSION_TEENY 7
 #define RUBY_RELEASE_YEAR 2009
 #define RUBY_RELEASE_MONTH 2
-#define RUBY_RELEASE_DAY 17
+#define RUBY_RELEASE_DAY 18
 
 #ifdef RUBY_EXTERN
 RUBY_EXTERN const char ruby_version[];

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

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