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

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/

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