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

ruby-changes:6458

From: akr <ko1@a...>
Date: Wed, 9 Jul 2008 21:01:30 +0900 (JST)
Subject: [ruby-changes:6458] Ruby:r17974 (trunk, ruby_1_8): * array.c (rb_ary_fill): don't raise even if length is negative.

akr	2008-07-09 21:01:08 +0900 (Wed, 09 Jul 2008)

  New Revision: 17974

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

  Log:
    * array.c (rb_ary_fill): don't raise even if length is negative.
      [ruby-core:17483], [ruby-core:17661]

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

Index: array.c
===================================================================
--- array.c	(revision 17973)
+++ array.c	(revision 17974)
@@ -2141,10 +2141,12 @@
 	    if (beg < 0) beg = 0;
 	}
 	len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);
-	if (len < 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);
 	break;
     }
     rb_ary_modify(ary);
+    if (len < 0) {
+        return ary;
+    }
     if (beg >= ARY_MAX_SIZE || len > ARY_MAX_SIZE - beg) {
 	rb_raise(rb_eArgError, "argument too big");
     }
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 17973)
+++ ChangeLog	(revision 17974)
@@ -1,3 +1,8 @@
+Wed Jul  9 20:58:16 2008  Tanaka Akira  <akr@f...>
+
+	* array.c (rb_ary_fill): don't raise even if length is negative.
+	  [ruby-core:17483], [ruby-core:17661]
+
 Wed Jul  9 20:36:31 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* thread_{pthread,win32}.c (native_sleep): wait until timed out.
Index: ruby_1_8/array.c
===================================================================
--- ruby_1_8/array.c	(revision 17973)
+++ ruby_1_8/array.c	(revision 17974)
@@ -2413,10 +2413,12 @@
 	    if (beg < 0) beg = 0;
 	}
 	len = NIL_P(arg2) ? RARRAY(ary)->len - beg : NUM2LONG(arg2);
-	if (len < 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);
 	break;
     }
     rb_ary_modify(ary);
+    if (len < 0) {
+        return ary;
+    }
     if (beg >= ARY_MAX_SIZE || len > ARY_MAX_SIZE - beg) {
 	rb_raise(rb_eArgError, "argument too big");
     }
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 17973)
+++ ruby_1_8/ChangeLog	(revision 17974)
@@ -1,3 +1,8 @@
+Wed Jul  9 20:58:16 2008  Tanaka Akira  <akr@f...>
+
+	* array.c (rb_ary_fill): don't raise even if length is negative.
+	  [ruby-core:17483], [ruby-core:17661]
+
 Wed Jul  9 01:38:37 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* string.c (rb_str_succ): alphabets or numerics mutually enclosing

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

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