summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/HashMap.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-06-23 06:13:55 +0000
committerPaul Phillips <paulp@improving.org>2011-06-23 06:13:55 +0000
commitb924c4142de1ca6525a3d5e57ecfb7a345dd9f89 (patch)
tree6d098958841f8c842b1cfda00e032bf1f96e2f2e /src/library/scala/collection/mutable/HashMap.scala
parent8ba9b511c2b11d0514013bb1e18cbc8a7b9e5f5c (diff)
downloadscala-b924c4142de1ca6525a3d5e57ecfb7a345dd9f89.tar.gz
scala-b924c4142de1ca6525a3d5e57ecfb7a345dd9f89.tar.bz2
scala-b924c4142de1ca6525a3d5e57ecfb7a345dd9f89.zip
Overrode contains and apply in mutable.HashMap ...
Overrode contains and apply in mutable.HashMap to avoid allocating an unnecessary Some on every call to either of them. Fruit looks a little better defended in immutable.HashMap, so I deleted a bunch of old debugging code instead. Closes #4469, no review.
Diffstat (limited to 'src/library/scala/collection/mutable/HashMap.scala')
-rw-r--r--src/library/scala/collection/mutable/HashMap.scala8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/library/scala/collection/mutable/HashMap.scala b/src/library/scala/collection/mutable/HashMap.scala
index 19ad53faf5..b082fc2770 100644
--- a/src/library/scala/collection/mutable/HashMap.scala
+++ b/src/library/scala/collection/mutable/HashMap.scala
@@ -59,6 +59,14 @@ extends Map[A, B]
override def par = new ParHashMap[A, B](hashTableContents)
+ // contains and apply overridden to avoid option allocations.
+ override def contains(key: A) = findEntry(key) != null
+ override def apply(key: A): B = {
+ val result = findEntry(key)
+ if (result == null) default(key)
+ else result.value
+ }
+
def get(key: A): Option[B] = {
val e = findEntry(key)
if (e == null) None