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());
|
||||
}
|
||||
|
||||
for (auto it = m_apps.keyBegin(); it != m_apps.keyEnd(); ++it) {
|
||||
const auto& id = *it;
|
||||
if (!newIds.contains(id)) {
|
||||
for (auto it = m_apps.begin(); it != m_apps.end();) {
|
||||
if (!newIds.contains(it.key())) {
|
||||
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