diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2025-06-03 19:12:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-03 19:12:30 -0700 |
commit | 6760857bf3ad82a44c56d45a6a88a21b3fe521be (patch) | |
tree | 5c5ff37d0386ecabcf3e4652b19a26c72ff6ee58 /lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp | |
parent | 437b16085cdaed7b12dc3afdd655423e2bb20751 (diff) | |
download | llvm-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.cpp | 8 |
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(); } |