ruby-changes:10834
From: shyouhei <ko1@a...>
Date: Wed, 18 Feb 2009 22:07:28 +0900 (JST)
Subject: [ruby-changes:10834] Ruby:r22404 (ruby_1_8_6): merge revision(s) 20360:20363:
shyouhei 2009-02-18 22:07:19 +0900 (Wed, 18 Feb 2009) New Revision: 22404 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22404 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_6/ChangeLog branches/ruby_1_8_6/ext/gdbm/gdbm.c branches/ruby_1_8_6/version.h Index: ruby_1_8_6/ext/gdbm/gdbm.c =================================================================== --- ruby_1_8_6/ext/gdbm/gdbm.c (revision 22403) +++ ruby_1_8_6/ext/gdbm/gdbm.c (revision 22404) @@ -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_6/ChangeLog =================================================================== --- ruby_1_8_6/ChangeLog (revision 22403) +++ ruby_1_8_6/ChangeLog (revision 22404) @@ -1,3 +1,10 @@ +Wed Feb 18 22:05: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:57:39 2009 Nobuyoshi Nakada <nobu@r...> * string.c (str_independent): no independent string points null_str. Index: ruby_1_8_6/version.h =================================================================== --- ruby_1_8_6/version.h (revision 22403) +++ ruby_1_8_6/version.h (revision 22404) @@ -1,15 +1,15 @@ #define RUBY_VERSION "1.8.6" -#define RUBY_RELEASE_DATE "2009-02-17" +#define RUBY_RELEASE_DATE "2009-02-18" #define RUBY_VERSION_CODE 186 -#define RUBY_RELEASE_CODE 20090217 -#define RUBY_PATCHLEVEL 337 +#define RUBY_RELEASE_CODE 20090218 +#define RUBY_PATCHLEVEL 338 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 #define RUBY_VERSION_TEENY 6 #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/