diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/collection/mutable/DoubleLinkedList.scala | 16 | ||||
-rw-r--r-- | src/library/scala/collection/mutable/LinkedListLike.scala | 3 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/library/scala/collection/mutable/DoubleLinkedList.scala b/src/library/scala/collection/mutable/DoubleLinkedList.scala index e702301703..d3c86953c8 100644 --- a/src/library/scala/collection/mutable/DoubleLinkedList.scala +++ b/src/library/scala/collection/mutable/DoubleLinkedList.scala @@ -69,15 +69,21 @@ object DoubleLinkedList extends SeqFactory[DoubleLinkedList] { def newBuilder[A]: Builder[A, DoubleLinkedList[A]] = new Builder[A, DoubleLinkedList[A]] { var current: DoubleLinkedList[A] = _ + val emptyList = new DoubleLinkedList[A]() + if(null == current) + current = emptyList + def +=(elem: A): this.type = { - val tmp = new DoubleLinkedList(elem, null) - if (current != null) - current.insert(tmp) + if (current.nonEmpty) + current.insert(new DoubleLinkedList(elem, emptyList)) else - current = tmp + current = new DoubleLinkedList(elem, emptyList) this } - def clear() { current = null } + + def clear() { + current = emptyList + } def result() = current } } diff --git a/src/library/scala/collection/mutable/LinkedListLike.scala b/src/library/scala/collection/mutable/LinkedListLike.scala index ca904e0a24..6fb516d566 100644 --- a/src/library/scala/collection/mutable/LinkedListLike.scala +++ b/src/library/scala/collection/mutable/LinkedListLike.scala @@ -66,8 +66,7 @@ trait LinkedListLike[A, This <: Seq[A] with LinkedListLike[A, This]] extends Seq def insert(that: This): Unit = { require(nonEmpty, "insert into empty list") if (that.nonEmpty) { - that.append(next) - next = that + next = next.append(that) } } |