diff options
author | Martin Odersky <odersky@gmail.com> | 2007-11-17 20:24:21 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-11-17 20:24:21 +0000 |
commit | ac55b8a3c32eb837080e7f39fa3eeeb68a5e2014 (patch) | |
tree | 1036bb63198fe4ac5d4c750ac53df4986c3f5a76 /src/library | |
parent | 3818b76a0d280d28316b1607698163c8da4f7a67 (diff) | |
download | scala-ac55b8a3c32eb837080e7f39fa3eeeb68a5e2014.tar.gz scala-ac55b8a3c32eb837080e7f39fa3eeeb68a5e2014.tar.bz2 scala-ac55b8a3c32eb837080e7f39fa3eeeb68a5e2014.zip |
Fixed #214, #217, #218
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/immutable/HashSet.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/library/scala/collection/immutable/HashSet.scala b/src/library/scala/collection/immutable/HashSet.scala index 4de43cad46..5e6dd10f50 100644 --- a/src/library/scala/collection/immutable/HashSet.scala +++ b/src/library/scala/collection/immutable/HashSet.scala @@ -86,7 +86,9 @@ class HashSet[A] extends Set[A] with mutable.FlatHashTable[A] { override def elements = synchronized { makeCopyIfUpdated() - super.elements + // note need to cache because (later versions of) set might be mutated while elements are traversed. + val cached = new mutable.ArrayBuffer() ++ super.elements + cached.elements } private def logLimit: Int = Math.sqrt(table.length).toInt |