diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-29 18:18:03 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-29 18:18:03 +0000 |
commit | 813f3585690a4dcdb87f3e4e031ef4b284762dbb (patch) | |
tree | c6ffb536a59f83806773f3657dab4632cb4d45c2 | |
parent | 8ce9cb8f3185a12d13dce3c994f4aaf05f37a703 (diff) |
* array.c (ary_join_1): should not copy the encoding of non-string
element after string element. [ruby-core:39776] [Bug #5379]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | array.c | 1 | ||||
-rw-r--r-- | test/ruby/test_array.rb | 2 |
3 files changed, 8 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Thu Sep 29 13:17:51 2011 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * array.c (ary_join_1): should not copy the encoding of non-string + element after string element. [ruby-core:39776] [Bug #5379] + Thu Sep 29 11:53:56 2011 Nobuyoshi Nakada <nobu@ruby-lang.org> * gc.c (slot_sweep, rb_gc_finalize_deferred) @@ -1659,6 +1659,7 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first) case T_STRING: str_join: rb_str_buf_append(result, val); + *first = FALSE; break; case T_ARRAY: obj = val; diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 64524768e1..8d25e85d62 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -926,6 +926,8 @@ class TestArray < Test::Unit::TestCase assert_equal(Encoding::US_ASCII, [1, [u]].join.encoding) assert_equal(Encoding::UTF_8, [u, [e]].join.encoding) assert_equal(Encoding::UTF_8, [u, [1]].join.encoding) + bug5379 = '[ruby-core:39776]' + assert_equal(Encoding::UTF_8, [[], u, nil].join.encoding, bug5379) ensure $, = nil end |