fix: iterator invalidation in AppDb updateApps

Was removing from list via take() while iterating through it
This commit is contained in:
2 * r + 2 * t 2026-03-24 01:50:48 +11:00
parent 25515fd32b
commit 0f10af0f18

View file

@ -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;
}
}