summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-08 10:58:35 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-08 10:58:35 +0000
commit450a515e959d2a35d6e1a59bad0a83db2a7698da (patch)
tree82783e60535f9e4e5d8e6a1d5d6cb19541f035af
parent98932f5150c2e6e26976c9e20b34d79c645e6593 (diff)
* 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
-rw-r--r--ChangeLog5
-rw-r--r--array.c3
-rw-r--r--test/ruby/test_array.rb7
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 <usa@ruby-lang.org>
+
+ * 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 <nobu@ruby-lang.org>
* 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