From ddcdb970bc25aa24f9256009b1577ad7e9ef9d57 Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Mon, 17 Sep 2018 16:21:25 -0700 Subject: [PATCH] * Revert the changes to TryInsert() introduced by https://github.com/dotnet/coreclr/pull/17096 completely, which only showed modest size improvement * Removing the _version increment from Clear() entirely to bring it in line with the behavior in Remove() and to keep size gains [tfs-changeset: 1714543] Signed-off-by: dotnet-bot Commit migrated from https://github.com/dotnet/coreclr/commit/a00a6eaca1d6d45235ed076b81a2169d08487e71 --- .../src/System/Collections/Generic/Dictionary.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs b/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs index bc30407..4710565 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/Dictionary.cs @@ -267,7 +267,6 @@ namespace System.Collections.Generic _freeCount = 0; Array.Clear(_entries, 0, count); } - _version++; } public bool ContainsKey(TKey key) @@ -476,7 +475,6 @@ namespace System.Collections.Generic ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key); } - _version++; if (_buckets == null) { Initialize(0); @@ -511,6 +509,7 @@ namespace System.Collections.Generic if (behavior == InsertionBehavior.OverwriteExisting) { entries[i].value = value; + _version++; return true; } @@ -552,6 +551,7 @@ namespace System.Collections.Generic if (behavior == InsertionBehavior.OverwriteExisting) { entries[i].value = value; + _version++; return true; } @@ -590,6 +590,7 @@ namespace System.Collections.Generic if (behavior == InsertionBehavior.OverwriteExisting) { entries[i].value = value; + _version++; return true; } @@ -647,6 +648,7 @@ namespace System.Collections.Generic entry.value = value; // Value in _buckets is 1-based bucket = index + 1; + _version++; // Value types never rehash if (default(TKey) == null && collisionCount > HashHelpers.HashCollisionThreshold && comparer is NonRandomizedStringEqualityComparer) -- 2.7.4