Author: Alex Langford Date: 2025-12-15T10:51:48-08:00 New Revision: 34f63032932af3af49ddc56dcb86ec8115b25344
URL: https://github.com/llvm/llvm-project/commit/34f63032932af3af49ddc56dcb86ec8115b25344 DIFF: https://github.com/llvm/llvm-project/commit/34f63032932af3af49ddc56dcb86ec8115b25344.diff LOG: [lldb][NFCI] Make LookupInfo const (#171901) Instead of changing an existing LookupInfo after creation, let's make them constant. Added: Modified: lldb/include/lldb/Core/Module.h lldb/source/Breakpoint/BreakpointResolverName.cpp lldb/source/Core/Module.cpp lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h index 40ce23e3d2ffb..643b9a5c3bf54 100644 --- a/lldb/include/lldb/Core/Module.h +++ b/lldb/include/lldb/Core/Module.h @@ -909,6 +909,9 @@ class Module : public std::enable_shared_from_this<Module>, public: LookupInfo() = default; + /// Copies an existing LookupInfo with a diff erent lookup name. + LookupInfo(const LookupInfo &lookup_info, ConstString lookup_name); + /// Creates a vector of lookup infos for function name resolution. /// /// \param[in] name @@ -925,28 +928,26 @@ class Module : public std::enable_shared_from_this<Module>, /// The language to create lookups for. If eLanguageTypeUnknown is /// passed, creates one LookupInfo for each language plugin currently /// available in LLDB. If a specific language is provided, creates only - // a single LookupInfo for that language. + /// a single LookupInfo for that language. + /// + /// \param[in] lookup_name_override + /// Manually override the name used for lookup. This parameter is + /// optional. If not provided, it will be set to the value of the name + /// parameter. /// /// \return /// A vector of LookupInfo objects, one per relevant language. static std::vector<LookupInfo> MakeLookupInfos(ConstString name, lldb::FunctionNameType name_type_mask, - lldb::LanguageType lang_type); + lldb::LanguageType lang_type, + ConstString lookup_name_override = {}); ConstString GetName() const { return m_name; } - void SetName(ConstString name) { m_name = name; } - ConstString GetLookupName() const { return m_lookup_name; } - void SetLookupName(ConstString name) { m_lookup_name = name; } - lldb::FunctionNameType GetNameTypeMask() const { return m_name_type_mask; } - void SetNameTypeMask(lldb::FunctionNameType mask) { - m_name_type_mask = mask; - } - lldb::LanguageType GetLanguageType() const { return m_language; } bool NameMatchesLookupInfo( @@ -974,7 +975,8 @@ class Module : public std::enable_shared_from_this<Module>, bool m_match_name_after_lookup = false; private: - LookupInfo(ConstString name, lldb::FunctionNameType name_type_mask, + LookupInfo(ConstString name, ConstString lookup_name, + lldb::FunctionNameType name_type_mask, lldb::LanguageType lang_type); }; diff --git a/lldb/source/Breakpoint/BreakpointResolverName.cpp b/lldb/source/Breakpoint/BreakpointResolverName.cpp index 2025f59eacb92..6bb76b71e6e24 100644 --- a/lldb/source/Breakpoint/BreakpointResolverName.cpp +++ b/lldb/source/Breakpoint/BreakpointResolverName.cpp @@ -229,10 +229,8 @@ void BreakpointResolverName::AddNameLookup(ConstString name, if (variant.GetType() & lldb::eFunctionNameTypeFull) { std::vector<Module::LookupInfo> variant_lookups = Module::LookupInfo::MakeLookupInfos(name, variant.GetType(), - lang->GetLanguageType()); - llvm::for_each(variant_lookups, [&](auto &variant_lookup) { - variant_lookup.SetLookupName(variant.GetName()); - }); + lang->GetLanguageType(), + variant.GetName()); llvm::append_range(m_lookups, variant_lookups); } } diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 466340b0e0990..617e2d0904e83 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -641,10 +641,16 @@ void Module::FindCompileUnits(const FileSpec &path, } } -Module::LookupInfo::LookupInfo(ConstString name, +Module::LookupInfo::LookupInfo(const LookupInfo &lookup_info, + ConstString lookup_name) + : m_name(lookup_info.GetName()), m_lookup_name(lookup_name), + m_language(lookup_info.GetLanguageType()), + m_name_type_mask(lookup_info.GetNameTypeMask()) {} + +Module::LookupInfo::LookupInfo(ConstString name, ConstString lookup_name, FunctionNameType name_type_mask, LanguageType lang_type) - : m_name(name), m_lookup_name(name), m_language(lang_type) { + : m_name(name), m_lookup_name(lookup_name), m_language(lang_type) { std::optional<ConstString> basename; Language *lang = Language::FindPlugin(lang_type); @@ -696,10 +702,9 @@ Module::LookupInfo::LookupInfo(ConstString name, } } -std::vector<Module::LookupInfo> -Module::LookupInfo::MakeLookupInfos(ConstString name, - lldb::FunctionNameType name_type_mask, - lldb::LanguageType lang_type) { +std::vector<Module::LookupInfo> Module::LookupInfo::MakeLookupInfos( + ConstString name, lldb::FunctionNameType name_type_mask, + lldb::LanguageType lang_type, ConstString lookup_name_override) { std::vector<LanguageType> lang_types; if (lang_type != eLanguageTypeUnknown) { lang_types.push_back(lang_type); @@ -717,10 +722,12 @@ Module::LookupInfo::MakeLookupInfos(ConstString name, lang_types = {eLanguageTypeObjC, eLanguageTypeC_plus_plus}; } + ConstString lookup_name = lookup_name_override ? lookup_name_override : name; + std::vector<Module::LookupInfo> infos; infos.reserve(lang_types.size()); for (LanguageType lang_type : lang_types) { - Module::LookupInfo info(name, name_type_mask, lang_type); + Module::LookupInfo info(name, lookup_name, name_type_mask, lang_type); infos.push_back(info); } return infos; diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index dbd47901578dd..e1210a1310772 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -2737,8 +2737,8 @@ void SymbolFileDWARF::FindFunctions(const Module::LookupInfo &lookup_info, if (it != llvm::StringRef::npos) { const llvm::StringRef name_no_template_params = name_ref.slice(0, it); - Module::LookupInfo no_tp_lookup_info(lookup_info); - no_tp_lookup_info.SetLookupName(ConstString(name_no_template_params)); + Module::LookupInfo no_tp_lookup_info( + lookup_info, ConstString(name_no_template_params)); m_index->GetFunctions(no_tp_lookup_info, *this, parent_decl_ctx, [&](DWARFDIE die) { if (resolved_dies.insert(die.GetDIE()).second) _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
