From c97a1440341c963e24003335af2e1cc981827038 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 10 Nov 2021 10:48:35 +0100 Subject: [PATCH] CppEditor: Move static variable to function Following the principle of scope minimization. Also, we got a reproducible crash-on-exit with MSVC with the original code. Change-Id: I465f4376fa7928de9bb878aee5faac992f75bf08 Reviewed-by: Qt CI Bot Reviewed-by: David Schulz --- src/plugins/cppeditor/cppcodemodelsettings.cpp | 10 +++++++--- src/plugins/cppeditor/cppcodemodelsettings.h | 4 ---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp index cf57ee39730..e60d8464687 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp @@ -36,6 +36,9 @@ #include #include +#include +#include +#include #include using namespace Utils; @@ -356,11 +359,12 @@ static QVersionNumber getClangdVersion(const FilePath &clangdFilePath) QVersionNumber ClangdSettings::clangdVersion(const FilePath &clangdFilePath) { + static QHash> versionCache; const QDateTime timeStamp = clangdFilePath.lastModified(); - const auto it = m_versionCache.find(clangdFilePath); - if (it == m_versionCache.end()) { + const auto it = versionCache.find(clangdFilePath); + if (it == versionCache.end()) { const QVersionNumber version = getClangdVersion(clangdFilePath); - m_versionCache.insert(clangdFilePath, qMakePair(timeStamp, version)); + versionCache.insert(clangdFilePath, qMakePair(timeStamp, version)); return version; } if (it->first != timeStamp) { diff --git a/src/plugins/cppeditor/cppcodemodelsettings.h b/src/plugins/cppeditor/cppcodemodelsettings.h index 2f3de7dd6bc..7d3ecb27fae 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.h +++ b/src/plugins/cppeditor/cppcodemodelsettings.h @@ -29,10 +29,7 @@ #include -#include -#include #include -#include #include #include @@ -150,7 +147,6 @@ private: void saveSettings(); Data m_data; - static inline QHash> m_versionCache; }; inline bool operator==(const ClangdSettings::Data &s1, const ClangdSettings::Data &s2)