[前][次][番号順一覧][スレッド一覧]

ruby-changes:12465

From: akr <ko1@a...>
Date: Fri, 17 Jul 2009 16:49:23 +0900 (JST)
Subject: [ruby-changes:12465] Ruby:r24165 (trunk): * array.c (recursive_hash): reject recursive key.

akr	2009-07-17 16:49:06 +0900 (Fri, 17 Jul 2009)

  New Revision: 24165

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24165

  Log:
    * array.c (recursive_hash): reject recursive key.

  Modified files:
    trunk/ChangeLog
    trunk/array.c
    trunk/test/ruby/test_array.rb

Index: array.c
===================================================================
--- array.c	(revision 24164)
+++ array.c	(revision 24165)
@@ -2884,7 +2884,7 @@
     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++) {
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24164)
+++ ChangeLog	(revision 24165)
@@ -1,3 +1,7 @@
+Fri Jul 17 16:45:22 2009  Tanaka Akira  <akr@f...>
+
+	* array.c (recursive_hash): reject recursive key.
+
 Fri Jul 17 15:20:53 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* random.c (DIGSPERINT): fix for LP64.
Index: test/ruby/test_array.rb
===================================================================
--- test/ruby/test_array.rb	(revision 24164)
+++ test/ruby/test_array.rb	(revision 24165)
@@ -1572,9 +1572,7 @@
   def test_hash2
     a = []
     a << a
-    b = []
-    b << b
-    assert_equal(a.hash, b.hash)
+    assert_raise(ArgumentError) { a.hash }
   end
 
   def test_flatten2

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]