summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/Iterator.scala
diff options
context:
space:
mode:
authorJean-Remi Desjardins <jeanremi.desjardins@gmail.com>2014-05-05 09:34:15 -0400
committerJason Zaugg <jzaugg@gmail.com>2014-05-09 17:36:11 +0200
commit71cfb57499bda80f5fb0a810f37d0f9c54e1afd3 (patch)
treeb183eba46345d0ee6c53e064685fb188942399e9 /src/library/scala/collection/Iterator.scala
parent251616a107f4255203e318c9f6342f774d25e66d (diff)
downloadscala-71cfb57499bda80f5fb0a810f37d0f9c54e1afd3.tar.gz
scala-71cfb57499bda80f5fb0a810f37d0f9c54e1afd3.tar.bz2
scala-71cfb57499bda80f5fb0a810f37d0f9c54e1afd3.zip
SI-8475 Fix off by one in GroupedIterator when Streaming
This also affected sliding and grouped since they defer to GroupedIterator
Diffstat (limited to 'src/library/scala/collection/Iterator.scala')
-rw-r--r--src/library/scala/collection/Iterator.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala
index 1b496383a3..e321a6adba 100644
--- a/src/library/scala/collection/Iterator.scala
+++ b/src/library/scala/collection/Iterator.scala
@@ -926,7 +926,9 @@ trait Iterator[+A] extends TraversableOnce[A] {
private def takeDestructively(size: Int): Seq[A] = {
val buf = new ArrayBuffer[A]
var i = 0
- while (self.hasNext && i < size) {
+ // The order of terms in the following condition is important
+ // here as self.hasNext could be blocking
+ while (i < size && self.hasNext) {
buf += self.next
i += 1
}