summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--marshal.c5
-rw-r--r--test/ruby/test_marshal.rb3
-rw-r--r--version.h4
4 files changed, 13 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a2e18094da..11e56d2953 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jan 8 13:12:26 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * 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@zenspider.com>
* lib/minitest/*.rb: Imported minitest 1.5.0 r5596.
diff --git a/marshal.c b/marshal.c
index be33546a89..3b5054c007 100644
--- a/marshal.c
+++ b/marshal.c
@@ -424,10 +424,11 @@ w_symbol(ID id, struct dump_arg *arg)
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);
diff --git a/test/ruby/test_marshal.rb b/test/ruby/test_marshal.rb
index 704385897c..28cf38c7db 100644
--- a/test/ruby/test_marshal.rb
+++ b/test/ruby/test_marshal.rb
@@ -261,6 +261,9 @@ class TestMarshal < Test::Unit::TestCase
[: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")
diff --git a/version.h b/version.h
index acc8acfac5..2586568836 100644
--- a/version.h
+++ b/version.h
@@ -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"