[ruby-dev:24355] Re: arr.fill(start, length) {}

From: nobu@...
Date: 2004-09-27 04:05:07 UTC
List: ruby-dev #24355
なかだです。

At Sun, 26 Sep 2004 03:59:09 +0900,
Tanaka Akira wrote in [ruby-dev:24346]:
> 
> 次のように、Array#fill に第2引数 length を与えても、配列の最後まで影響
> されてしまうことがあります。
> 
> % ./ruby -ve '
> arr = (1..10).to_a
> arr.fill(3,2) { nil }
> p arr
> '

ブロックが与えられたときにlengthを見てませんね。


Index: array.c
===================================================================
RCS file: /cvs/ruby/src/ruby/array.c,v
retrieving revision 1.159
diff -u -2 -p -r1.159 array.c
--- array.c	24 Sep 2004 05:53:42 -0000	1.159
+++ array.c	27 Sep 2004 04:02:53 -0000
@@ -2387,5 +2387,5 @@ rb_ary_fill(argc, argv, ary)
 	long i;
 
-	for (i=beg; i<RARRAY(ary)->len; i++) {
+	for (i=beg; i<end; i++) {
 	    v = rb_yield(LONG2NUM(i));
 	    if (i>=RARRAY(ary)->len) break;


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next