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

ruby-changes:14210

From: marcandre <ko1@a...>
Date: Mon, 7 Dec 2009 06:44:04 +0900 (JST)
Subject: [ruby-changes:14210] Ruby:r26030 (ruby_1_8): * array.c (rb_ary_sample): Fix infinite loop bug

marcandre	2009-12-07 06:43:46 +0900 (Mon, 07 Dec 2009)

  New Revision: 26030

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

  Log:
    * array.c (rb_ary_sample): Fix infinite loop bug [ruby-core:27075]

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/array.c

Index: ruby_1_8/array.c
===================================================================
--- ruby_1_8/array.c	(revision 26029)
+++ ruby_1_8/array.c	(revision 26030)
@@ -3367,8 +3367,8 @@
 	return RARRAY_PTR(ary)[i];
     }
     rb_scan_args(argc, argv, "1", &nv);
-    if (len == 0) return rb_ary_new2(0);
     n = NUM2INT(nv);
+    if (n >= len) return rb_ary_shuffle(ary);
     result = rb_ary_new2(n);
     for (i=0; i<n; i++) {
       retry:
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 26029)
+++ ruby_1_8/ChangeLog	(revision 26030)
@@ -1,3 +1,7 @@
+Mon Dec  7 06:43:20 2009  Marc-Andre Lafortune  <ruby-core@m...>
+
+	* array.c (rb_ary_sample): Fix infinite loop bug [ruby-core:27075]
+
 Sat Dec  5 13:19:29 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* configure.in: default ac_cv_prog_CC to CC.

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

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