From 5fa1e7f7179fb0aacb222282497a5fb71af4f189 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Fri, 27 Jun 2025 17:42:02 +1000 Subject: [PATCH] remove some duplicate dict lookups (#19138) --- src/Avalonia.Base/Collections/AvaloniaDictionary.cs | 3 +-- src/Avalonia.Base/Controls/NameScope.cs | 3 +-- src/Avalonia.Base/Media/MediaContext.cs | 3 +-- src/Avalonia.Base/Utilities/SmallDictionary.cs | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Avalonia.Base/Collections/AvaloniaDictionary.cs b/src/Avalonia.Base/Collections/AvaloniaDictionary.cs index 2fef8f77c8..12219c599f 100644 --- a/src/Avalonia.Base/Collections/AvaloniaDictionary.cs +++ b/src/Avalonia.Base/Collections/AvaloniaDictionary.cs @@ -167,9 +167,8 @@ namespace Avalonia.Collections /// public bool Remove(TKey key) { - if (_inner.TryGetValue(key, out var value)) + if (_inner.Remove(key, out var value)) { - _inner.Remove(key); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Count))); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs($"{CommonPropertyNames.IndexerName}[{key}]")); diff --git a/src/Avalonia.Base/Controls/NameScope.cs b/src/Avalonia.Base/Controls/NameScope.cs index 952401c00c..e373f7e634 100644 --- a/src/Avalonia.Base/Controls/NameScope.cs +++ b/src/Avalonia.Base/Controls/NameScope.cs @@ -68,9 +68,8 @@ namespace Avalonia.Controls else { _inner.Add(name, element); - if (_pendingSearches.TryGetValue(name, out var tcs)) + if (_pendingSearches.Remove(name, out var tcs)) { - _pendingSearches.Remove(name); tcs.SetResult(element); } } diff --git a/src/Avalonia.Base/Media/MediaContext.cs b/src/Avalonia.Base/Media/MediaContext.cs index 9747d01c7e..d82144688d 100644 --- a/src/Avalonia.Base/Media/MediaContext.cs +++ b/src/Avalonia.Base/Media/MediaContext.cs @@ -173,9 +173,8 @@ internal partial class MediaContext : ICompositorScheduler public void RemoveTopLevel(object key) { - if (_topLevels.TryGetValue(key, out var info)) + if (_topLevels.Remove(key, out var info)) { - _topLevels.Remove(key); info.Renderer.Stop(); } } diff --git a/src/Avalonia.Base/Utilities/SmallDictionary.cs b/src/Avalonia.Base/Utilities/SmallDictionary.cs index fbb22058a6..bfb3a32bac 100644 --- a/src/Avalonia.Base/Utilities/SmallDictionary.cs +++ b/src/Avalonia.Base/Utilities/SmallDictionary.cs @@ -292,9 +292,8 @@ internal struct InlineDictionary : IEnumerable dic) { - if (!dic.TryGetValue(key, out value)) + if (!dic.Remove(key, out value)) return false; - dic.Remove(key); } value = default;