Add ToArray() calls to removal iteration for safety

This commit is contained in:
Dean Herbert
2022-08-25 15:13:38 +09:00
parent 091c51e664
commit 3ca4bdc087

View File

@ -142,9 +142,9 @@ namespace osu.Game.Rulesets.Osu.Edit.Blueprints.Sliders.Components
case NotifyCollectionChangedAction.Remove: case NotifyCollectionChangedAction.Remove:
foreach (var point in e.OldItems.Cast<PathControlPoint>()) foreach (var point in e.OldItems.Cast<PathControlPoint>())
{ {
foreach (var piece in Pieces.Where(p => p.ControlPoint == point)) foreach (var piece in Pieces.Where(p => p.ControlPoint == point).ToArray())
piece.RemoveAndDisposeImmediately(); piece.RemoveAndDisposeImmediately();
foreach (var connection in Connections.Where(c => c.ControlPoint == point)) foreach (var connection in Connections.Where(c => c.ControlPoint == point).ToArray())
connection.RemoveAndDisposeImmediately(); connection.RemoveAndDisposeImmediately();
} }