summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-01-04 14:16:21 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-01-04 14:16:21 -0800
commit0d3de0c25212febfed646ed505837aa0a17d2b3e (patch)
tree7a6fbbdd78ad24badadff46a52c62c99365e28d1 /src
parent54aca491463f25985d45aeb823d2cddda54b6a44 (diff)
parent92cf0e354e38d450bfe34d4612f9f869faec2baf (diff)
downloadscala-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')
-rw-r--r--src/library/scala/collection/Iterator.scala5
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
}