diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f79dda..1b7a5e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed + - Fixed an issue where commands would collapse to the point of the last deleted command instead of the position in queue where the new command was going ## [8.7.1] - 2019-08-22 ### Changed diff --git a/ICD.Common.Utils/Collections/PriorityQueue.cs b/ICD.Common.Utils/Collections/PriorityQueue.cs index 8c07ef3..ace0eb1 100644 --- a/ICD.Common.Utils/Collections/PriorityQueue.cs +++ b/ICD.Common.Utils/Collections/PriorityQueue.cs @@ -134,8 +134,6 @@ namespace ICD.Common.Utils.Collections if (remove == null) throw new ArgumentNullException("remove"); - bool inserted = false; - foreach (KeyValuePair> kvp in m_PriorityToQueue.ToArray()) { int[] removeIndices = @@ -144,35 +142,17 @@ namespace ICD.Common.Utils.Collections .Reverse() .ToArray(); - if (removeIndices.Length == 0) - continue; - foreach (int removeIndex in removeIndices) { kvp.Value.RemoveAt(removeIndex); m_Count--; } - if (!inserted) - { - int insertIndex = removeIndices[0]; - - if (insertIndex >= kvp.Value.Count) - kvp.Value.Add(item); - else - kvp.Value.Insert(insertIndex, item); - - m_Count++; - - inserted = true; - } - if (kvp.Value.Count == 0) m_PriorityToQueue.Remove(kvp.Key); } - if (!inserted) - Enqueue(item, priority); + Enqueue(item, priority); } ///