Skip EqualityComparer<TKey>.Default creation in Dictionary .ctor (#31629)
authorBen Adams <thundercat@illyriad.co.uk>
Mon, 3 Feb 2020 04:18:06 +0000 (04:18 +0000)
committerGitHub <noreply@github.com>
Mon, 3 Feb 2020 04:18:06 +0000 (20:18 -0800)
* Skip EqualityComparer<TKey>.Default creation in Ditctionary .ctor

* Update src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs

Co-Authored-By: Stephen Toub <stoub@microsoft.com>
src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs

index 8ed75d5..05afb1b 100644 (file)
@@ -79,7 +79,7 @@ namespace System.Collections.Generic
         {
             if (capacity < 0) ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity);
             if (capacity > 0) Initialize(capacity);
-            if (comparer != EqualityComparer<TKey>.Default)
+            if (comparer != null && comparer != EqualityComparer<TKey>.Default) // first check for null to avoid forcing default comparer instantiation unnecessarily
             {
                 _comparer = comparer;
             }