From 450a515e959d2a35d6e1a59bad0a83db2a7698da Mon Sep 17 00:00:00 2001 From: usa Date: Fri, 8 Feb 2013 10:58:35 +0000 Subject: * array.c (rb_ary_dup): reverted r39004. see [Bug #7768], and the release manager finailly decided to revert it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ array.c | 3 +-- test/ruby/test_array.rb | 7 ------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index c6f1dbde85..711f8d92de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Feb 8 19:56:54 2013 NAKAMURA Usaku + + * array.c (rb_ary_dup): reverted r39004. see [Bug #7768], and + release manager finailly decided to revert it. + Fri Feb 8 16:09:45 2013 Nobuyoshi Nakada * eval.c (rb_ensure): preserve errinfo accross ensure proc before diff --git a/array.c b/array.c index b4216ac1d0..a7c74a2aa4 100644 --- a/array.c +++ b/array.c @@ -1778,8 +1778,7 @@ rb_ary_empty_p(VALUE ary) VALUE rb_ary_dup(VALUE ary) { - VALUE ary_class = rb_obj_class(ary); - VALUE dup = ary_new(ary_class ? ary_class : rb_cArray, RARRAY_LEN(ary)); + VALUE dup = rb_ary_new2(RARRAY_LEN(ary)); MEMCPY(RARRAY_PTR(dup), RARRAY_PTR(ary), VALUE, RARRAY_LEN(ary)); ARY_SET_LEN(dup, RARRAY_LEN(ary)); return dup; diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index c231ecccd1..3ab0895f8c 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -2283,11 +2283,4 @@ class TestArray < Test::Unit::TestCase assert_include([4, 7], a.bsearch {|x| (2**100).coerce((1 - x / 4) * (2**100)).first }) end - - def test_array_uniq_returns_same_class # [ruby-core:51792] - klass = Class.new(Array) - assert_equal klass, klass.new(2).uniq.class - assert_equal klass, klass.new(1).uniq.class - assert_equal klass, klass.new(0).uniq.class - end end -- cgit v1.2.3