aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2025-06-03 19:12:30 -0700
committerGitHub <noreply@github.com>2025-06-03 19:12:30 -0700
commit6760857bf3ad82a44c56d45a6a88a21b3fe521be (patch)
tree5c5ff37d0386ecabcf3e4652b19a26c72ff6ee58 /lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
parent437b16085cdaed7b12dc3afdd655423e2bb20751 (diff)
downloadllvm-6760857bf3ad82a44c56d45a6a88a21b3fe521be.zip
llvm-6760857bf3ad82a44c56d45a6a88a21b3fe521be.tar.gz
llvm-6760857bf3ad82a44c56d45a6a88a21b3fe521be.tar.bz2
[lldb] Fix data race in statusline format handling (#142489)
This fixes a data race between the main thread and the default event handler thread. The statusline format option value was protected by a mutex, but it was returned as a pointer, allowing one thread to access it while another was modifying it. Avoid the data race by returning format values by value instead of by pointer.
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp')
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
index 7485577..0f18abb 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -2066,9 +2066,9 @@ public:
m_collection_sp->Initialize(g_language_cplusplus_properties);
}
- const FormatEntity::Entry *GetFunctionNameFormat() const {
- return GetPropertyAtIndexAs<const FormatEntity::Entry *>(
- ePropertyFunctionNameFormat);
+ FormatEntity::Entry GetFunctionNameFormat() const {
+ return GetPropertyAtIndexAs<FormatEntity::Entry>(
+ ePropertyFunctionNameFormat, {});
}
};
} // namespace
@@ -2078,7 +2078,7 @@ static PluginProperties &GetGlobalPluginProperties() {
return g_settings;
}
-const FormatEntity::Entry *CPlusPlusLanguage::GetFunctionNameFormat() const {
+FormatEntity::Entry CPlusPlusLanguage::GetFunctionNameFormat() const {
return GetGlobalPluginProperties().GetFunctionNameFormat();
}