Skip to content

Commit 34f6303

Browse files
authored
[lldb][NFCI] Make LookupInfo const (#171901)
Instead of changing an existing LookupInfo after creation, let's make them constant.
1 parent 60010b3 commit 34f6303

File tree

4 files changed

+31
-24
lines changed

4 files changed

+31
-24
lines changed

lldb/include/lldb/Core/Module.h

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,9 @@ class Module : public std::enable_shared_from_this<Module>,
909909
public:
910910
LookupInfo() = default;
911911

912+
/// Copies an existing LookupInfo with a different lookup name.
913+
LookupInfo(const LookupInfo &lookup_info, ConstString lookup_name);
914+
912915
/// Creates a vector of lookup infos for function name resolution.
913916
///
914917
/// \param[in] name
@@ -925,28 +928,26 @@ class Module : public std::enable_shared_from_this<Module>,
925928
/// The language to create lookups for. If eLanguageTypeUnknown is
926929
/// passed, creates one LookupInfo for each language plugin currently
927930
/// available in LLDB. If a specific language is provided, creates only
928-
// a single LookupInfo for that language.
931+
/// a single LookupInfo for that language.
932+
///
933+
/// \param[in] lookup_name_override
934+
/// Manually override the name used for lookup. This parameter is
935+
/// optional. If not provided, it will be set to the value of the name
936+
/// parameter.
929937
///
930938
/// \return
931939
/// A vector of LookupInfo objects, one per relevant language.
932940
static std::vector<LookupInfo>
933941
MakeLookupInfos(ConstString name, lldb::FunctionNameType name_type_mask,
934-
lldb::LanguageType lang_type);
942+
lldb::LanguageType lang_type,
943+
ConstString lookup_name_override = {});
935944

936945
ConstString GetName() const { return m_name; }
937946

938-
void SetName(ConstString name) { m_name = name; }
939-
940947
ConstString GetLookupName() const { return m_lookup_name; }
941948

942-
void SetLookupName(ConstString name) { m_lookup_name = name; }
943-
944949
lldb::FunctionNameType GetNameTypeMask() const { return m_name_type_mask; }
945950

946-
void SetNameTypeMask(lldb::FunctionNameType mask) {
947-
m_name_type_mask = mask;
948-
}
949-
950951
lldb::LanguageType GetLanguageType() const { return m_language; }
951952

952953
bool NameMatchesLookupInfo(
@@ -974,7 +975,8 @@ class Module : public std::enable_shared_from_this<Module>,
974975
bool m_match_name_after_lookup = false;
975976

976977
private:
977-
LookupInfo(ConstString name, lldb::FunctionNameType name_type_mask,
978+
LookupInfo(ConstString name, ConstString lookup_name,
979+
lldb::FunctionNameType name_type_mask,
978980
lldb::LanguageType lang_type);
979981
};
980982

lldb/source/Breakpoint/BreakpointResolverName.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,8 @@ void BreakpointResolverName::AddNameLookup(ConstString name,
229229
if (variant.GetType() & lldb::eFunctionNameTypeFull) {
230230
std::vector<Module::LookupInfo> variant_lookups =
231231
Module::LookupInfo::MakeLookupInfos(name, variant.GetType(),
232-
lang->GetLanguageType());
233-
llvm::for_each(variant_lookups, [&](auto &variant_lookup) {
234-
variant_lookup.SetLookupName(variant.GetName());
235-
});
232+
lang->GetLanguageType(),
233+
variant.GetName());
236234
llvm::append_range(m_lookups, variant_lookups);
237235
}
238236
}

lldb/source/Core/Module.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -641,10 +641,16 @@ void Module::FindCompileUnits(const FileSpec &path,
641641
}
642642
}
643643

644-
Module::LookupInfo::LookupInfo(ConstString name,
644+
Module::LookupInfo::LookupInfo(const LookupInfo &lookup_info,
645+
ConstString lookup_name)
646+
: m_name(lookup_info.GetName()), m_lookup_name(lookup_name),
647+
m_language(lookup_info.GetLanguageType()),
648+
m_name_type_mask(lookup_info.GetNameTypeMask()) {}
649+
650+
Module::LookupInfo::LookupInfo(ConstString name, ConstString lookup_name,
645651
FunctionNameType name_type_mask,
646652
LanguageType lang_type)
647-
: m_name(name), m_lookup_name(name), m_language(lang_type) {
653+
: m_name(name), m_lookup_name(lookup_name), m_language(lang_type) {
648654
std::optional<ConstString> basename;
649655
Language *lang = Language::FindPlugin(lang_type);
650656

@@ -696,10 +702,9 @@ Module::LookupInfo::LookupInfo(ConstString name,
696702
}
697703
}
698704

699-
std::vector<Module::LookupInfo>
700-
Module::LookupInfo::MakeLookupInfos(ConstString name,
701-
lldb::FunctionNameType name_type_mask,
702-
lldb::LanguageType lang_type) {
705+
std::vector<Module::LookupInfo> Module::LookupInfo::MakeLookupInfos(
706+
ConstString name, lldb::FunctionNameType name_type_mask,
707+
lldb::LanguageType lang_type, ConstString lookup_name_override) {
703708
std::vector<LanguageType> lang_types;
704709
if (lang_type != eLanguageTypeUnknown) {
705710
lang_types.push_back(lang_type);
@@ -717,10 +722,12 @@ Module::LookupInfo::MakeLookupInfos(ConstString name,
717722
lang_types = {eLanguageTypeObjC, eLanguageTypeC_plus_plus};
718723
}
719724

725+
ConstString lookup_name = lookup_name_override ? lookup_name_override : name;
726+
720727
std::vector<Module::LookupInfo> infos;
721728
infos.reserve(lang_types.size());
722729
for (LanguageType lang_type : lang_types) {
723-
Module::LookupInfo info(name, name_type_mask, lang_type);
730+
Module::LookupInfo info(name, lookup_name, name_type_mask, lang_type);
724731
infos.push_back(info);
725732
}
726733
return infos;

lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2737,8 +2737,8 @@ void SymbolFileDWARF::FindFunctions(const Module::LookupInfo &lookup_info,
27372737
if (it != llvm::StringRef::npos) {
27382738
const llvm::StringRef name_no_template_params = name_ref.slice(0, it);
27392739

2740-
Module::LookupInfo no_tp_lookup_info(lookup_info);
2741-
no_tp_lookup_info.SetLookupName(ConstString(name_no_template_params));
2740+
Module::LookupInfo no_tp_lookup_info(
2741+
lookup_info, ConstString(name_no_template_params));
27422742
m_index->GetFunctions(no_tp_lookup_info, *this, parent_decl_ctx,
27432743
[&](DWARFDIE die) {
27442744
if (resolved_dies.insert(die.GetDIE()).second)

0 commit comments

Comments
 (0)