8000 Avoid allocation in `LanguagePrimitives.UpdateTypeConvertFromTypeTabl… · PowerShell/PowerShell@5abb90f · GitHub
[go: up one dir, main page]

Skip to content

Commit 5abb90f

Browse files
authored
Avoid allocation in LanguagePrimitives.UpdateTypeConvertFromTypeTable (#15168)
1 parent 364e74a commit 5abb90f

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/System.Management.Automation/engine/LanguagePrimitives.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using System.Diagnostics.CodeAnalysis;
1010
using System.Globalization;
1111
using System.IO;
12-
using System.Linq;
1312
using System.Linq.Expressions;
1413
using System.Management.Automation.Internal;
1514
using System.Management.Automation.Language;
@@ -339,12 +338,13 @@ internal static void UpdateTypeConvertFromTypeTable(string typeName)
339338
{
340339
lock (s_converterCache)
341340
{
342-
var toRemove = s_converterCache.Keys.Where(
343-
conv => string.Equals(conv.to.FullName, typeName, StringComparison.OrdinalIgnoreCase) ||
344-
string.Equals(conv.from.FullName, typeName, StringComparison.OrdinalIgnoreCase)).ToArray();
345-
foreach (var k in toRemove)
341+
foreach (var key in s_converterCache.Keys)
346342
{
347-
s_converterCache.Remove(k);
343+
if (string.Equals(key.to.FullName, typeName, StringComparison.OrdinalIgnoreCase)
344+
|| string.Equals(key.from.FullName, typeName, StringComparison.OrdinalIgnoreCase))
345+
{
346+
s_converterCache.Remove(key);
347+
}
348348
}
349349

350350
// Note we do not clear possibleTypeConverter even when removing.

0 commit comments

Comments
 (0)
0