fix: iterator invalidation in AppDb updateApps
Was removing from list via take() while iterating through it
This commit is contained in:
parent
25515fd32b
commit
0f10af0f18
1 changed files with 6 additions and 4 deletions
|
|
@ -303,11 +303,13 @@ void AppDb::updateApps() {
|
||||||
newIds.insert(entry->property("id").toString());
|
newIds.insert(entry->property("id").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto it = m_apps.keyBegin(); it != m_apps.keyEnd(); ++it) {
|
for (auto it = m_apps.begin(); it != m_apps.end();) {
|
||||||
const auto& id = *it;
|
if (!newIds.contains(it.key())) {
|
||||||
if (!newIds.contains(id)) {
|
|
||||||
dirty = true;
|
dirty = true;
|
||||||
m_apps.take(id)->deleteLater();
|
it.value()->deleteLater();
|
||||||
|
it = m_apps.erase(it);
|
||||||
|
} else {
|
||||||
|
++it;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue