diff --git a/src/plugins/coreplugin/documentmanager.cpp b/src/plugins/coreplugin/documentmanager.cpp index 5a4ac99ceaf..2813ca0dd7e 100644 --- a/src/plugins/coreplugin/documentmanager.cpp +++ b/src/plugins/coreplugin/documentmanager.cpp @@ -1094,9 +1094,9 @@ void DocumentManager::checkForReload() } currentStates.insert(fileKey, state); changeTypes.insert(fileKey, type); - QList documents = d->m_states.value(fileKey).lastUpdatedState.keys(); - for (IDocument *document : documents) - changedIDocuments.insert(document); + const auto docs = d->m_states.value(fileKey).lastUpdatedState; + for (auto it = docs.begin(); it != docs.end(); ++it) + changedIDocuments.insert(it.key()); } // clean up. do this before we may enter the main loop, otherwise we would diff --git a/src/plugins/coreplugin/settingsdatabase.cpp b/src/plugins/coreplugin/settingsdatabase.cpp index d5be946796d..e81d81fa371 100644 --- a/src/plugins/coreplugin/settingsdatabase.cpp +++ b/src/plugins/coreplugin/settingsdatabase.cpp @@ -209,14 +209,15 @@ void remove(const QString &key) const QString effectiveKey = d->effectiveKey(key); // Remove keys from the cache - const QStringList keys = d->m_settings.keys(); - for (const QString &k : keys) { + for (auto it = d->m_settings.cbegin(); it != d->m_settings.cend(); ) { // Either it's an exact match, or it matches up to a / + const QString k = it.key(); if (k.startsWith(effectiveKey) && (k.length() == effectiveKey.length() - || k.at(effectiveKey.length()) == QLatin1Char('/'))) - { - d->m_settings.remove(k); + || k.at(effectiveKey.length()) == QLatin1Char('/'))) { + it = d->m_settings.erase(it); + } else { + ++it; } }