diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-06-28 07:42:19 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-06-28 07:42:19 +0000 |
commit | 108828f680f43343e59d9f4db8b1d761f994e161 (patch) | |
tree | 3b6c884d8ea2b9a8209ad64dfff483870d94c05b | |
parent | 416f0075a20f0514ba9dc1866b6a9b9bc84011b1 (diff) |
merge revision(s) r46243,r46244: [Backport #9882] [Backport #9883]
* string.c (rb_str_substr): need to reset code range for shared
string too, not only copied string.
[ruby-core:62842] [Bug #9882]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | string.c | 2 | ||||
-rw-r--r-- | test/ruby/test_string.rb | 5 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 13 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Sat Jun 28 16:35:51 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * string.c (rb_str_substr): need to reset code range for shared + string too, not only copied string. + [ruby-core:62842] [Bug #9882] + Sat Jun 28 14:37:17 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> * parse.y (local_tbl_gen): remove local variables duplicated with @@ -1956,10 +1956,10 @@ rb_str_substr(VALUE str, long beg, long len) } else { str2 = rb_str_new5(str, p, len); - rb_enc_cr_str_copy_for_substr(str2, str); OBJ_INFECT(str2, str); RB_GC_GUARD(str); } + rb_enc_cr_str_copy_for_substr(str2, str); return str2; } diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index 3f65826ec3..e510a4984c 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -1179,6 +1179,11 @@ class TestString < Test::Unit::TestCase assert_equal(S("Bar"), S("FooBar").slice(S("Bar"))) assert_nil(S("FooBar").slice(S("xyzzy"))) assert_nil(S("FooBar").slice(S("plugh"))) + + bug9882 = '[ruby-core:62842] [Bug #9882]' + substr = S("\u{30c6 30b9 30c8 2019}#{bug9882}").slice(4..-1) + assert_equal(S(bug9882).hash, substr.hash, bug9882) + assert_predicate(substr, :ascii_only?, bug9882) end def test_slice! @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.1.2" #define RUBY_RELEASE_DATE "2014-06-28" -#define RUBY_PATCHLEVEL 143 +#define RUBY_PATCHLEVEL 144 #define RUBY_RELEASE_YEAR 2014 #define RUBY_RELEASE_MONTH 6 |