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

ruby-changes:7199

From: nobu <ko1@a...>
Date: Wed, 20 Aug 2008 12:28:48 +0900 (JST)
Subject: [ruby-changes:7199] Ruby:r18718 (trunk): * array.c (rb_ary_sample): get rid of infinite loop. #455

nobu	2008-08-20 12:28:34 +0900 (Wed, 20 Aug 2008)

  New Revision: 18718

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

  Log:
    * array.c (rb_ary_sample): get rid of infinite loop.  #455

  Modified files:
    trunk/ChangeLog
    trunk/array.c

Index: array.c
===================================================================
--- array.c	(revision 18717)
+++ array.c	(revision 18718)
@@ -3032,8 +3032,9 @@
 	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) n = len;
+    if (n == 0) return rb_ary_new2(0);
     result = rb_ary_new2(n);
     for (i=0; i<n; i++) {
       retry:
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18717)
+++ ChangeLog	(revision 18718)
@@ -1,3 +1,7 @@
+Wed Aug 20 12:28:31 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* array.c (rb_ary_sample): get rid of infinite loop.  #455
+
 Wed Aug 20 06:09:31 2008  Tanaka Akira  <akr@f...>
 
 	* include/ruby/io.h (FMODE_TRUNC): value changed because 0x100 is used

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

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