From 86a36ceeef728413a213fa7702d07cf4a6c5298b Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Thu, 2 Aug 2018 08:32:16 +0200 Subject: Properly delete element from unordered_map --- gui/treemodel.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gui/treemodel.cc b/gui/treemodel.cc index 900d5101..33dd6a96 100644 --- a/gui/treemodel.cc +++ b/gui/treemodel.cc @@ -70,12 +70,14 @@ void IdStringList::updateElements(Context *ctx, std::vector elements) } // For any elements that are in managed_ but not in new, delete them. - for (auto &pair : managed_) { - if (element_set.count(pair.first) != 0) { - continue; + auto it = managed_.begin(); + while (it != managed_.end()) { + if (element_set.count(it->first) != 0) { + ++it; + } else { + it = managed_.erase(it); + changed = true; } - managed_.erase(pair.first); - changed = true; } // Return early if there are no changes. -- cgit v1.2.3