diff --git a/src/engraving/playback/playbackmodel.cpp b/src/engraving/playback/playbackmodel.cpp index 504d3e5181abc..85ccd2fa64064 100644 --- a/src/engraving/playback/playbackmodel.cpp +++ b/src/engraving/playback/playbackmodel.cpp @@ -793,6 +793,10 @@ void PlaybackModel::notifyAboutChanges(const InstrumentTrackIdSet& oldTracks, co void PlaybackModel::removeTrackEvents(const InstrumentTrackId& trackId, const mpe::timestamp_t timestampFrom, const mpe::timestamp_t timestampTo) { + IF_ASSERT_FAILED(timestampFrom <= timestampTo) { + return; + } + auto search = m_playbackDataMap.find(trackId); if (search == m_playbackDataMap.cend()) { @@ -818,7 +822,7 @@ void PlaybackModel::removeTrackEvents(const InstrumentTrackId& trackId, const mp auto upperBound = trackPlaybackData.originEvents.upper_bound(timestampTo); - for (auto it = lowerBound; it != upperBound;) { + for (auto it = lowerBound; it != upperBound && it != trackPlaybackData.originEvents.end();) { it = trackPlaybackData.originEvents.erase(it); } }