From 7789f4dbb0c68ee2b2753ae9d1fa201c5ff38e54 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Wed, 7 May 2025 16:26:43 +0900 Subject: [PATCH] Ensure `BeatmapItemsCount` is stable during filter operations --- osu.Game/Screens/SelectV2/BeatmapCarouselFilterMatching.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/osu.Game/Screens/SelectV2/BeatmapCarouselFilterMatching.cs b/osu.Game/Screens/SelectV2/BeatmapCarouselFilterMatching.cs index 526e76b5f1..c1ce4aaa69 100644 --- a/osu.Game/Screens/SelectV2/BeatmapCarouselFilterMatching.cs +++ b/osu.Game/Screens/SelectV2/BeatmapCarouselFilterMatching.cs @@ -28,7 +28,6 @@ namespace osu.Game.Screens.SelectV2 public async Task> Run(IEnumerable items, CancellationToken cancellationToken) => await Task.Run(() => { - BeatmapItemsCount = 0; var criteria = getCriteria(); return matchItems(items, criteria); @@ -36,16 +35,20 @@ namespace osu.Game.Screens.SelectV2 private IEnumerable matchItems(IEnumerable items, FilterCriteria criteria) { + int countMatching = 0; + foreach (var item in items) { var beatmap = (BeatmapInfo)item.Model; if (checkMatch(beatmap, criteria)) { - BeatmapItemsCount++; + countMatching++; yield return item; } } + + BeatmapItemsCount = countMatching; } private static bool checkMatch(BeatmapInfo beatmap, FilterCriteria criteria)