From 9e06ec815ed9088c0b131e06bdbe74c5905baa0b Mon Sep 17 00:00:00 2001 From: mvglasow Date: Sat, 11 Oct 2025 15:08:17 +0300 Subject: [PATCH] [traff_assessment_tool] Handle invalid selections gracefully, clear marks Signed-off-by: mvglasow --- tools/traff_assessment_tool/traffic_model.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/traff_assessment_tool/traffic_model.cpp b/tools/traff_assessment_tool/traffic_model.cpp index 68e2d0dc1..a0f9b1640 100644 --- a/tools/traff_assessment_tool/traffic_model.cpp +++ b/tools/traff_assessment_tool/traffic_model.cpp @@ -449,15 +449,24 @@ void TrafficModel::OnItemSelected(QItemSelection const & selected, QItemSelectio auto const row = selected.front().top(); - CHECK_LESS(static_cast(row), m_messages.size(), ()); + auto editSession = m_framework.GetBookmarkManager().GetEditSession(); + editSession.ClearGroup(UserMark::Type::COLORED); + + if (static_cast(row) >= m_messages.size()) + { + editSession.SetIsVisible(UserMark::Type::COLORED, false); + return; + } + auto message = &m_messages[row]; if (!message->m_location) + { + editSession.SetIsVisible(UserMark::Type::COLORED, false); return; + } m2::RectD rect; - auto editSession = m_framework.GetBookmarkManager().GetEditSession(); - editSession.ClearGroup(UserMark::Type::COLORED); editSession.SetIsVisible(UserMark::Type::COLORED, true); for (auto & [coords, color] : {