diff options
author | David Shah <davey1576@gmail.com> | 2018-08-02 09:03:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-02 09:03:57 +0200 |
commit | 62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4 (patch) | |
tree | d35acb090917fa71e35df61baa30453a5961914b /gui/treemodel.cc | |
parent | 97b16c6a5f81ac7643dfe5d811628ec076a3fc7d (diff) | |
parent | 86a36ceeef728413a213fa7702d07cf4a6c5298b (diff) | |
download | nextpnr-62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4.tar.gz nextpnr-62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4.tar.bz2 nextpnr-62e61c44e89f39d6ee3852b6bc3cf6eeeb12b7e4.zip |
Merge pull request #12 from YosysHQ/fix-updateelements
Properly delete element from unordered_map
Diffstat (limited to 'gui/treemodel.cc')
-rw-r--r-- | gui/treemodel.cc | 12 |
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. |