diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-02 09:26:08 -0800 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-02 09:26:08 -0800 |
commit | ca85886eb1b4a6b5b8df3c26d49933e13c57f730 (patch) | |
tree | f4a916a6d974c259d6c2112bfad81ed7e3d75f75 /src/library | |
parent | 5b4a71eda1df7d914da8d65cfa750bb5e408ca84 (diff) | |
parent | f84acc99cd46e43f0ce6c466534882390459d9b5 (diff) | |
download | scala-ca85886eb1b4a6b5b8df3c26d49933e13c57f730.tar.gz scala-ca85886eb1b4a6b5b8df3c26d49933e13c57f730.tar.bz2 scala-ca85886eb1b4a6b5b8df3c26d49933e13c57f730.zip |
Merge pull request #3450 from Ichoran/issue/7266
SI-7266 Stream leaks memory
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/immutable/Stream.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/library/scala/collection/immutable/Stream.scala b/src/library/scala/collection/immutable/Stream.scala index 49c3b4c3cd..60de147477 100644 --- a/src/library/scala/collection/immutable/Stream.scala +++ b/src/library/scala/collection/immutable/Stream.scala @@ -1108,11 +1108,15 @@ object Stream extends SeqFactory[Stream] { override def isEmpty = false override def head = hd @volatile private[this] var tlVal: Stream[A] = _ - def tailDefined: Boolean = tlVal ne null + @volatile private[this] var tlGen = tl _ + def tailDefined: Boolean = tlGen eq null override def tail: Stream[A] = { if (!tailDefined) synchronized { - if (!tailDefined) tlVal = tl + if (!tailDefined) { + tlVal = tlGen() + tlGen = null + } } tlVal |