diff options
author | Paul Phillips <paulp@improving.org> | 2011-06-23 06:13:55 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-06-23 06:13:55 +0000 |
commit | b924c4142de1ca6525a3d5e57ecfb7a345dd9f89 (patch) | |
tree | 6d098958841f8c842b1cfda00e032bf1f96e2f2e /src/library/scala/collection/mutable/HashMap.scala | |
parent | 8ba9b511c2b11d0514013bb1e18cbc8a7b9e5f5c (diff) | |
download | scala-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.scala | 8 |
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 |