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

ruby-changes:11836

From: matz <ko1@a...>
Date: Wed, 20 May 2009 00:08:00 +0900 (JST)
Subject: [ruby-changes:11836] Ruby:r23491 (trunk): * vm_method.c (rb_attr): should preserve encoding info.

matz	2009-05-20 00:07:45 +0900 (Wed, 20 May 2009)

  New Revision: 23491

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

  Log:
    * vm_method.c (rb_attr): should preserve encoding info.
      [ruby-dev:38498]

  Modified files:
    trunk/ChangeLog
    trunk/vm_method.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23490)
+++ ChangeLog	(revision 23491)
@@ -1,3 +1,8 @@
+Wed May 20 00:05:52 2009  Yukihiro Matsumoto  <matz@r...>
+
+	* vm_method.c (rb_attr): should preserve encoding info.
+	  [ruby-dev:38498]
+
 Tue May 19 22:54:35 2009  Yusuke Endoh  <mame@t...>
 
 	* time.c (time_minus): always return a Float.  [ruby-dev:38446]
Index: vm_method.c
===================================================================
--- vm_method.c	(revision 23490)
+++ vm_method.c	(revision 23491)
@@ -446,6 +446,7 @@
 {
     const char *name;
     ID attriv;
+    VALUE aname;
     int noex;
 
     if (!ex) {
@@ -473,7 +474,9 @@
     if (!name) {
 	rb_raise(rb_eArgError, "argument needs to be symbol or string");
     }
-    attriv = rb_intern_str(rb_sprintf("@%s", name));
+    aname = rb_sprintf("@%s", name);
+    rb_enc_copy(aname, rb_id2str(id));
+    attriv = rb_intern_str(aname);
     if (read) {
 	rb_add_method(klass, id, NEW_IVAR(attriv), noex);
     }

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

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