diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-04 14:16:21 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-04 14:16:21 -0800 |
commit | 0d3de0c25212febfed646ed505837aa0a17d2b3e (patch) | |
tree | 7a6fbbdd78ad24badadff46a52c62c99365e28d1 /src/library | |
parent | 54aca491463f25985d45aeb823d2cddda54b6a44 (diff) | |
parent | 92cf0e354e38d450bfe34d4612f9f869faec2baf (diff) | |
download | scala-0d3de0c25212febfed646ed505837aa0a17d2b3e.tar.gz scala-0d3de0c25212febfed646ed505837aa0a17d2b3e.tar.bz2 scala-0d3de0c25212febfed646ed505837aa0a17d2b3e.zip |
Merge pull request #1841 from adriaanm/rebase-6827-2.10.x
Fix Iterator#copyToArray (fixes SI-6827).
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/Iterator.scala | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala index cbf8cc4931..696bc4ab5c 100644 --- a/src/library/scala/collection/Iterator.scala +++ b/src/library/scala/collection/Iterator.scala @@ -1111,9 +1111,10 @@ trait Iterator[+A] extends TraversableOnce[A] { * $willNotTerminateInf */ def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Unit = { + require(start >= 0 && start < xs.length, s"start $start out of range ${xs.length}") var i = start - val end = start + math.min(len, xs.length) - while (hasNext && i < end) { + val end = start + math.min(len, xs.length - start) + while (i < end && hasNext) { xs(i) = next() i += 1 } |