diff options
author | Pap LÅ‘rinc <paplorinc@gmail.com> | 2016-12-06 22:59:46 +0200 |
---|---|---|
committer | Adriaan Moors <adriaan@lightbend.com> | 2017-01-05 13:27:05 -0800 |
commit | 1e82a92f01cc40a2293a7f1fe93d1d5f5a7595aa (patch) | |
tree | efcc7c7ed182dc9c9253c579c9c9d5b9c18eab25 /src | |
parent | 02c30a174de3032e377b3bea8854a9588d374dfb (diff) | |
download | scala-1e82a92f01cc40a2293a7f1fe93d1d5f5a7595aa.tar.gz scala-1e82a92f01cc40a2293a7f1fe93d1d5f5a7595aa.tar.bz2 scala-1e82a92f01cc40a2293a7f1fe93d1d5f5a7595aa.zip |
Simplify HashTable.index further
(cherry picked from commit 26c87f1af4cac782911500d6b143681ecdcef8ad)
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/collection/mutable/HashTable.scala | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/library/scala/collection/mutable/HashTable.scala b/src/library/scala/collection/mutable/HashTable.scala index 9364344ca5..4873aa3c3e 100644 --- a/src/library/scala/collection/mutable/HashTable.scala +++ b/src/library/scala/collection/mutable/HashTable.scala @@ -12,7 +12,7 @@ package scala package collection package mutable -import java.lang.Integer.rotateRight +import java.lang.Integer.{numberOfLeadingZeros, rotateRight} import scala.util.hashing.byteswap32 /** This class can be used to construct data structures that are based @@ -367,11 +367,7 @@ trait HashTable[A, Entry >: Null <: HashEntry[A, Entry]] extends HashTable.HashU * Note: we take the most significant bits of the hashcode, not the lower ones * this is of crucial importance when populating the table in parallel */ - protected final def index(hcode: Int): Int = { - val ones = table.length - 1 - val exponent = Integer.numberOfLeadingZeros(ones) - (improve(hcode, seedvalue) >>> exponent) & ones - } + protected final def index(hcode: Int): Int = if (table.length == 1) 0 else improve(hcode, seedvalue) >>> numberOfLeadingZeros(table.length - 1) protected def initWithContents(c: HashTable.Contents[A, Entry]) = { if (c != null) { |