diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-17 07:49:06 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-17 07:49:06 +0000 |
| commit | 70400acb69b20dd950852c8886045a04a05c73f1 (patch) | |
| tree | 0f93f56756189807009888ffed76af0a1a8236a2 | |
| parent | 985be1dd13a49271d46fa1dd68d30787ddaa4ec2 (diff) | |
| download | ruby-70400acb69b20dd950852c8886045a04a05c73f1.tar.gz ruby-70400acb69b20dd950852c8886045a04a05c73f1.tar.xz ruby-70400acb69b20dd950852c8886045a04a05c73f1.zip | |
* array.c (recursive_hash): reject recursive key.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | array.c | 2 | ||||
| -rw-r--r-- | test/ruby/test_array.rb | 4 |
3 files changed, 6 insertions, 4 deletions
@@ -1,3 +1,7 @@ +Fri Jul 17 16:45:22 2009 Tanaka Akira <akr@fsij.org> + + * array.c (recursive_hash): reject recursive key. + Fri Jul 17 15:20:53 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * random.c (DIGSPERINT): fix for LP64. @@ -2884,7 +2884,7 @@ recursive_hash(VALUE ary, VALUE dummy, int recur) VALUE n; if (recur) { - return LONG2FIX(0); + rb_raise(rb_eArgError, "recursive key for hash"); } h = rb_hash_start(RARRAY_LEN(ary)); for (i=0; i<RARRAY_LEN(ary); i++) { diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 489b40157..2723b37c6 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -1572,9 +1572,7 @@ class TestArray < Test::Unit::TestCase def test_hash2 a = [] a << a - b = [] - b << b - assert_equal(a.hash, b.hash) + assert_raise(ArgumentError) { a.hash } end def test_flatten2 |
