From 73e86661e35250da188a69e21cdbe464c9052ab9 Mon Sep 17 00:00:00 2001 From: ezgambac <52840484+ezgambac@users.noreply.github.com> Date: Fri, 4 Jun 2021 21:50:19 -0700 Subject: [PATCH 1/3] Update MemoryCache.cs Changed code to use KeyValuePair enumerator --- .../Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs index d13c7b936a26a..3e5b03c03ba56 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs @@ -316,8 +316,11 @@ void ScheduleTask(DateTimeOffset utcNow) private static void ScanForExpiredItems(MemoryCache cache) { DateTimeOffset now = cache._lastExpirationScan = cache._options.Clock.UtcNow; - foreach (CacheEntry entry in cache._entries.Values) + + foreach (KeyValuePair item in cache._entries) { + CacheEntry entry = item.Value; + if (entry.CheckExpired(now)) { cache.RemoveEntry(entry); From ce691968804ca25ccdc92c840d6a00f3700c268f Mon Sep 17 00:00:00 2001 From: ezgambac <52840484+ezgambac@users.noreply.github.com> Date: Fri, 4 Jun 2021 21:54:12 -0700 Subject: [PATCH 2/3] Changed Compact to use KeyValuePair enumerator --- .../Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs index 3e5b03c03ba56..12246d993ce1e 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs @@ -402,8 +402,9 @@ private void Compact(long removalSizeTarget, Func computeEntry // Sort items by expired & priority status DateTimeOffset now = _options.Clock.UtcNow; - foreach (CacheEntry entry in _entries.Values) + foreach (KeyValuePair item in cache._entries) { + CacheEntry entry = item.Value; if (entry.CheckExpired(now)) { entriesToRemove.Add(entry); From f9300c6aae7434971ec07bf0a7312cc5b2d60217 Mon Sep 17 00:00:00 2001 From: ezgambac <52840484+ezgambac@users.noreply.github.com> Date: Sat, 5 Jun 2021 13:12:27 -0700 Subject: [PATCH 3/3] Removed cache reference --- .../Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs index 12246d993ce1e..35121fc86ebc3 100644 --- a/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs +++ b/src/libraries/Microsoft.Extensions.Caching.Memory/src/MemoryCache.cs @@ -402,7 +402,7 @@ private void Compact(long removalSizeTarget, Func computeEntry // Sort items by expired & priority status DateTimeOffset now = _options.Clock.UtcNow; - foreach (KeyValuePair item in cache._entries) + foreach (KeyValuePair item in _entries) { CacheEntry entry = item.Value; if (entry.CheckExpired(now))