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

ruby-changes:14419

From: nobu <ko1@a...>
Date: Fri, 8 Jan 2010 13:12:47 +0900 (JST)
Subject: [ruby-changes:14419] Ruby:r26249 (trunk): * marshal.c (w_symbol): dump no encoding for 7bit only coderange

nobu	2010-01-08 13:12:29 +0900 (Fri, 08 Jan 2010)

  New Revision: 26249

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

  Log:
    * marshal.c (w_symbol): dump no encoding for 7bit only coderange
      symbol.  [ruby-core:27375]

  Modified files:
    trunk/ChangeLog
    trunk/marshal.c
    trunk/test/ruby/test_marshal.rb
    trunk/version.h

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26248)
+++ ChangeLog	(revision 26249)
@@ -1,3 +1,8 @@
+Fri Jan  8 13:12:26 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* marshal.c (w_symbol): dump no encoding for 7bit only coderange
+	  symbol.  [ruby-core:27375]
+
 Thu Jan  7 07:56:09 2010  Ryan Davis  <ryand-ruby@z...>
 
 	* lib/minitest/*.rb: Imported minitest 1.5.0 r5596.
Index: version.h
===================================================================
--- version.h	(revision 26248)
+++ version.h	(revision 26249)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.2"
-#define RUBY_RELEASE_DATE "2010-01-07"
+#define RUBY_RELEASE_DATE "2010-01-08"
 #define RUBY_PATCHLEVEL -1
 #define RUBY_BRANCH_NAME "trunk"
 
@@ -8,7 +8,7 @@
 #define RUBY_VERSION_TEENY 1
 #define RUBY_RELEASE_YEAR 2010
 #define RUBY_RELEASE_MONTH 1
-#define RUBY_RELEASE_DAY 7
+#define RUBY_RELEASE_DAY 8
 
 #include "ruby/version.h"
 
Index: marshal.c
===================================================================
--- marshal.c	(revision 26248)
+++ marshal.c	(revision 26249)
@@ -424,10 +424,11 @@
 	    rb_raise(rb_eTypeError, "can't dump anonymous ID %ld", id);
 	}
 	encidx = rb_enc_get_index(sym);
-	if (encidx == rb_usascii_encindex()) {
+	if (encidx == rb_usascii_encindex() ||
+	    rb_enc_str_coderange(sym) == ENC_CODERANGE_7BIT) {
 	    encidx = -1;
 	}
-	else if (rb_enc_str_coderange(sym) != ENC_CODERANGE_7BIT) {
+	else {
 	    w_byte(TYPE_IVAR, arg);
 	}
 	w_byte(TYPE_SYMBOL, arg);
Index: test/ruby/test_marshal.rb
===================================================================
--- test/ruby/test_marshal.rb	(revision 26248)
+++ test/ruby/test_marshal.rb	(revision 26249)
@@ -261,6 +261,9 @@
     [:ruby, :"\u{7d05}\u{7389}"].each do |sym|
       assert_equal(sym, Marshal.load(Marshal.dump(sym)), '[ruby-core:24788]')
     end
+    bug2548 = '[ruby-core:27375]'
+    ary = [:$1, nil]
+    assert_equal(ary, Marshal.load(Marshal.dump(ary)), bug2548)
   end
 
   ClassUTF8 = eval("class R\u{e9}sum\u{e9}; self; end")

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

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