summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/parallel/immutable/ParHashSet.scala
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-10-20 20:20:08 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-10-20 20:20:08 +0000
commitb689b912caa0e1bcd981c1a0092857ac83fb1e1d (patch)
tree194b115ae192b472baf904de14f7c61bce6af915 /src/library/scala/collection/parallel/immutable/ParHashSet.scala
parentb1d9354a08107afab9c15d2ae1b8dded82b5ffef (diff)
downloadscala-b689b912caa0e1bcd981c1a0092857ac83fb1e1d.tar.gz
scala-b689b912caa0e1bcd981c1a0092857ac83fb1e1d.tar.bz2
scala-b689b912caa0e1bcd981c1a0092857ac83fb1e1d.zip
Some serious hash tries bugs fixed.
Plus one wild goose chase and test fixes. No review.
Diffstat (limited to 'src/library/scala/collection/parallel/immutable/ParHashSet.scala')
-rw-r--r--src/library/scala/collection/parallel/immutable/ParHashSet.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/library/scala/collection/parallel/immutable/ParHashSet.scala b/src/library/scala/collection/parallel/immutable/ParHashSet.scala
index c9554ae1eb..33e2e7102a 100644
--- a/src/library/scala/collection/parallel/immutable/ParHashSet.scala
+++ b/src/library/scala/collection/parallel/immutable/ParHashSet.scala
@@ -106,10 +106,11 @@ private[immutable] abstract class HashSetCombiner[T]
extends collection.parallel.BucketCombiner[T, ParHashSet[T], Any, HashSetCombiner[T]](HashSetCombiner.rootsize) {
self: EnvironmentPassingCombiner[T, ParHashSet[T]] =>
import HashSetCombiner._
+ val emptyTrie = HashSet.empty[T]
def +=(elem: T) = {
sz += 1
- val hc = elem.##
+ val hc = emptyTrie.computeHash(elem)
val pos = hc & 0x1f
if (lasts(pos) eq null) {
// initialize bucket
@@ -166,7 +167,7 @@ self: EnvironmentPassingCombiner[T, ParHashSet[T]] =>
val chunksz = unrolled.size
while (i < chunksz) {
val v = chunkarr(i).asInstanceOf[T]
- val hc = v.##
+ val hc = trie.computeHash(v)
trie = trie.updated0(v, hc, rootbits)
i += 1
}