* array.c (ary_make_shared), test/ruby/test_array.rb (test_permutation): always return the original array when it is shared. [ruby-dev:42067] [Bug #3708]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
21cf543d38
commit
4023ffa92f
@ -1,3 +1,10 @@
|
|||||||
|
Wed Aug 18 18:36:32 2010 Kenta Murata <mrkn@mrkn.jp>
|
||||||
|
|
||||||
|
* array.c (ary_make_shared),
|
||||||
|
test/ruby/test_array.rb (test_permutation):
|
||||||
|
always return the original array when it is shared.
|
||||||
|
[ruby-dev:42067] [Bug #3708]
|
||||||
|
|
||||||
Wed Aug 18 01:37:49 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
Wed Aug 18 01:37:49 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||||
|
|
||||||
* regcomp.c: revert r26701; it introduces Bug #3681.
|
* regcomp.c: revert r26701; it introduces Bug #3681.
|
||||||
|
5
array.c
5
array.c
@ -409,10 +409,7 @@ static VALUE
|
|||||||
ary_make_shared(VALUE ary)
|
ary_make_shared(VALUE ary)
|
||||||
{
|
{
|
||||||
assert(!ARY_EMBED_P(ary));
|
assert(!ARY_EMBED_P(ary));
|
||||||
if (ARY_SHARED_P(ary)) {
|
if (ARY_SHARED_P(ary) || ARY_SHARED_ROOT_P(ary)) {
|
||||||
return ARY_SHARED(ary);
|
|
||||||
}
|
|
||||||
else if (ARY_SHARED_ROOT_P(ary)) {
|
|
||||||
return ary;
|
return ary;
|
||||||
}
|
}
|
||||||
else if (OBJ_FROZEN(ary)) {
|
else if (OBJ_FROZEN(ary)) {
|
||||||
|
@ -1549,6 +1549,9 @@ class TestArray < Test::Unit::TestCase
|
|||||||
a.permutation {|x| b << x; a.replace(@cls[9, 8, 7, 6]) }
|
a.permutation {|x| b << x; a.replace(@cls[9, 8, 7, 6]) }
|
||||||
assert_equal(@cls[9, 8, 7, 6], a)
|
assert_equal(@cls[9, 8, 7, 6], a)
|
||||||
assert_equal(@cls[1, 2, 3, 4].permutation.to_a, b)
|
assert_equal(@cls[1, 2, 3, 4].permutation.to_a, b)
|
||||||
|
|
||||||
|
bug3708 = '[ruby-dev:42067]'
|
||||||
|
assert_equal(b, @cls[0, 1, 2, 3, 4][1, 4].permutation.to_a, bug3708)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_repeated_permutation
|
def test_repeated_permutation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user