From ac55b8a3c32eb837080e7f39fa3eeeb68a5e2014 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sat, 17 Nov 2007 20:24:21 +0000 Subject: Fixed #214, #217, #218 --- src/library/scala/collection/immutable/HashSet.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/library') 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 -- cgit v1.2.3