ruby-changes:3621
From: ko1@a...
Date: Fri, 18 Jan 2008 15:56:22 +0900 (JST)
Subject: [ruby-changes:3621] nobu - Ruby:r15110 (trunk): * encoding.c (rb_enc_name_list_i, rb_enc_aliases_enc_i): freeze
nobu 2008-01-18 15:56:06 +0900 (Fri, 18 Jan 2008) New Revision: 15110 Modified files: trunk/ChangeLog trunk/encoding.c Log: * encoding.c (rb_enc_name_list_i, rb_enc_aliases_enc_i): freeze element strings to be returned. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15110&r2=15109&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/encoding.c?r1=15110&r2=15109&diff_format=u Index: encoding.c =================================================================== --- encoding.c (revision 15109) +++ encoding.c (revision 15110) @@ -1112,7 +1112,9 @@ rb_enc_name_list_i(st_data_t name, st_data_t idx, st_data_t arg) { VALUE ary = (VALUE)arg; - rb_ary_push(ary, rb_str_new2((char *)name)); + VALUE str = rb_str_new2((char *)name); + OBJ_FREEZE(str); + rb_ary_push(ary, str); return ST_CONTINUE; } @@ -1144,10 +1146,9 @@ rb_enc_aliases_enc_i(st_data_t name, st_data_t orig, st_data_t arg) { VALUE *p = (VALUE *)arg; - VALUE aliases = p[0]; - VALUE ary = p[1]; + VALUE aliases = p[0], ary = p[1]; int idx = (int)orig; - VALUE str = rb_ary_entry(ary, idx); + VALUE key, str = rb_ary_entry(ary, idx); if (NIL_P(str)) { rb_encoding *enc = rb_enc_from_index(idx); @@ -1156,9 +1157,12 @@ return ST_CONTINUE; } str = rb_str_new2(rb_enc_name(enc)); + OBJ_FREEZE(str); rb_ary_store(ary, idx, str); } - rb_hash_aset(aliases, rb_str_new2((char *)name), str); + key = rb_str_new2((char *)name); + OBJ_FREEZE(key); + rb_hash_aset(aliases, key, str); return ST_CONTINUE; } Index: ChangeLog =================================================================== --- ChangeLog (revision 15109) +++ ChangeLog (revision 15110) @@ -1,3 +1,8 @@ +Fri Jan 18 15:56:04 2008 Nobuyoshi Nakada <nobu@r...> + + * encoding.c (rb_enc_name_list_i, rb_enc_aliases_enc_i): freeze + element strings to be returned. + Fri Jan 18 14:36:34 2008 Kazuhiro NISHIYAMA <zn@m...> * test/ruby/test_m17n.rb (test_str_dump): added test for -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/