diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2012-11-25 13:25:00 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2012-11-25 13:25:00 -0800 |
commit | 8630176e985c5a8266d3afe4c4e3fb50d449630d (patch) | |
tree | c11b114c60df6e8cd0a8c3c1197f048106354edd | |
parent | 5df0d40045903eacb56d61a32dbe8327897d3189 (diff) | |
parent | 555a9bae72107f18a79cff16aa4e0b448b6cd915 (diff) | |
download | scala-8630176e985c5a8266d3afe4c4e3fb50d449630d.tar.gz scala-8630176e985c5a8266d3afe4c4e3fb50d449630d.tar.bz2 scala-8630176e985c5a8266d3afe4c4e3fb50d449630d.zip |
Merge pull request #1652 from jedesah/FlatHashTable
findEntry implementation code more concise and DRYer.
-rw-r--r-- | src/library/scala/collection/mutable/FlatHashTable.scala | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/library/scala/collection/mutable/FlatHashTable.scala b/src/library/scala/collection/mutable/FlatHashTable.scala index c0299479f3..91e95e039b 100644 --- a/src/library/scala/collection/mutable/FlatHashTable.scala +++ b/src/library/scala/collection/mutable/FlatHashTable.scala @@ -110,24 +110,23 @@ trait FlatHashTable[A] extends FlatHashTable.HashUtils[A] { /** Finds an entry in the hash table if such an element exists. */ protected def findEntry(elem: A): Option[A] = { - var h = index(elemHashCode(elem)) - var entry = table(h) - while (null != entry && entry != elem) { - h = (h + 1) % table.length - entry = table(h) - } + val entry = findEntryImpl(elem) if (null == entry) None else Some(entry.asInstanceOf[A]) } /** Checks whether an element is contained in the hash table. */ protected def containsEntry(elem: A): Boolean = { + null != findEntryImpl(elem) + } + + private def findEntryImpl(elem: A): AnyRef = { var h = index(elemHashCode(elem)) var entry = table(h) while (null != entry && entry != elem) { h = (h + 1) % table.length entry = table(h) } - null != entry + entry } /** Add entry if not yet in table. |