Properly delete element from unordered_map

This commit is contained in:
Miodrag Milanovic 2018-08-02 08:32:16 +02:00
parent 97b16c6a5f
commit 86a36ceeef

View File

@ -70,13 +70,15 @@ 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;
}
managed_.erase(pair.first);
auto it = managed_.begin();
while (it != managed_.end()) {
if (element_set.count(it->first) != 0) {
++it;
} else {
it = managed_.erase(it);
changed = true;
}
}
// Return early if there are no changes.
if (!changed)