[Lldb-commits] [lldb] 34f6303 - [lldb][NFCI] Make LookupInfo const (#171901)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 15 10:51:52 PST 2025
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)
More information about the lldb-commits
mailing list