summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2010-09-07 15:33:16 +0000
committerMartin Odersky <odersky@gmail.com>2010-09-07 15:33:16 +0000
commitee5a5d62943e4ba757032e8a4a0776c02e91f36b (patch)
tree1b1bfdfe74ecc4efcb2b9efcd7d2c03f0be27082
parentea710916c35fff3254034fe491c68d2c54afdc08 (diff)
downloadscala-ee5a5d62943e4ba757032e8a4a0776c02e91f36b.tar.gz
scala-ee5a5d62943e4ba757032e8a4a0776c02e91f36b.tar.bz2
scala-ee5a5d62943e4ba757032e8a4a0776c02e91f36b.zip
Fixes infinite loop when appending a ListBuffer...
Fixes infinite loop when appending a ListBuffer to itself. Review by extempore.
-rw-r--r--src/library/scala/collection/mutable/ListBuffer.scala6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala
index 415096ed89..55629fe523 100644
--- a/src/library/scala/collection/mutable/ListBuffer.scala
+++ b/src/library/scala/collection/mutable/ListBuffer.scala
@@ -123,6 +123,12 @@ final class ListBuffer[A]
this
}
+ override def ++=(xs: TraversableOnce[A]): this.type =
+ if (xs eq this) ++= (this take size) else super.++=(xs)
+
+ override def ++=:(xs: TraversableOnce[A]): this.type =
+ if (xs eq this) ++=: (this take size) else super.++=(xs)
+
/** Clears the buffer contents.
*/
def clear() {