From e986dc8938050a8d14a092f15ad875603df80c97 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 17 Sep 2024 14:14:41 +0200 Subject: [PATCH] CppEditor: Fix a crash on concurrent access to knownNames Fixes: QTCREATORBUG-31569 Change-Id: Ic7248facf78c7778aae50a598c01c77e6b2897c1 Reviewed-by: Christian Kandeler Reviewed-by: hjk --- src/plugins/cppeditor/cpptoolsreuse.cpp | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/plugins/cppeditor/cpptoolsreuse.cpp b/src/plugins/cppeditor/cpptoolsreuse.cpp index 7be177c2c1b..40576da3d24 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.cpp +++ b/src/plugins/cppeditor/cpptoolsreuse.cpp @@ -146,22 +146,22 @@ void moveCursorToStartOfIdentifier(QTextCursor *tc) static bool isOwnershipRAIIName(const QString &name) { - static QSet knownNames; - if (knownNames.isEmpty()) { + static const QSet knownNames { // Qt - knownNames.insert(QLatin1String("QScopedPointer")); - knownNames.insert(QLatin1String("QScopedArrayPointer")); - knownNames.insert(QLatin1String("QMutexLocker")); - knownNames.insert(QLatin1String("QReadLocker")); - knownNames.insert(QLatin1String("QWriteLocker")); - // Standard C++ - knownNames.insert(QLatin1String("auto_ptr")); - knownNames.insert(QLatin1String("unique_ptr")); - // Boost - knownNames.insert(QLatin1String("scoped_ptr")); - knownNames.insert(QLatin1String("scoped_array")); - } + "QMutexLocker", + "QReadLocker", + "QScopedArrayPointer", + "QScopedPointer", + "QWriteLocker", + // Standard C++ + "auto_ptr", + "unique_ptr", + + // Boost + "scoped_array", + "scoped_ptr", + }; return knownNames.contains(name); }