aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-08-02 09:03:57 +0200
committerGitHub <noreply@github.com>2018-08-02 09:03:57 +0200
commit62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4 (patch)
treed35acb090917fa71e35df61baa30453a5961914b
parent97b16c6a5f81ac7643dfe5d811628ec076a3fc7d (diff)
parent86a36ceeef728413a213fa7702d07cf4a6c5298b (diff)
downloadnextpnr-62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4.tar.gz
nextpnr-62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4.tar.bz2
nextpnr-62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4.zip
Merge pull request #12 from YosysHQ/fix-updateelements
Properly delete element from unordered_map
-rw-r--r--gui/treemodel.cc12
1 files 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<IdString> 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.