diff options
author | Łukasz Gieroń <lgieron@gmail.com> | 2016-05-23 15:17:24 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2016-05-23 15:17:24 +0200 |
commit | 41965695b71bc00ea60003c39c72a0e10bfd621f (patch) | |
tree | a9fa9f77ba80dfd3b9d5ba2ae47c228de87a5733 /src/library | |
parent | 0d0671ae10ef552d66861248fa087306c960520e (diff) | |
download | scala-41965695b71bc00ea60003c39c72a0e10bfd621f.tar.gz scala-41965695b71bc00ea60003c39c72a0e10bfd621f.tar.bz2 scala-41965695b71bc00ea60003c39c72a0e10bfd621f.zip |
SI-9688 Make merge in immutable HashMap1 work with null kv.
The kv field of scala.collection.immutable.HashMap.HashMap1 can be null. This
commit corrects the behavior of updated0 (which is on call path for merged) to
work in such cases, instead of throwing NPE.
Commit contains regression test.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/immutable/HashMap.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/library/scala/collection/immutable/HashMap.scala b/src/library/scala/collection/immutable/HashMap.scala index 92d915fe8b..3e482f1369 100644 --- a/src/library/scala/collection/immutable/HashMap.scala +++ b/src/library/scala/collection/immutable/HashMap.scala @@ -197,7 +197,7 @@ object HashMap extends ImmutableMapFactory[HashMap] with BitOperations.Int { if (this.value.asInstanceOf[AnyRef] eq value.asInstanceOf[AnyRef]) this else new HashMap1(key, hash, value, kv) } else { - val nkv = merger(this.kv, kv) + val nkv = merger(this.ensurePair, if(kv != null) kv else (key, value)) new HashMap1(nkv._1, hash, nkv._2, nkv) } } else { |