Skip to content

Commit 3d81008

Browse files
authored
[lldb][Lanugage][NFC] Adapt Language::ForEach to IterationAction (#161830)
1 parent 5d3b3ea commit 3d81008

File tree

6 files changed

+17
-15
lines changed

6 files changed

+17
-15
lines changed

lldb/include/lldb/Target/Language.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class Language : public PluginInterface {
166166
llvm::StringRef file_path);
167167

168168
// return false from callback to stop iterating
169-
static void ForEach(std::function<bool(Language *)> callback);
169+
static void ForEach(llvm::function_ref<IterationAction(Language *)> callback);
170170

171171
virtual lldb::LanguageType GetLanguageType() const = 0;
172172

@@ -420,7 +420,8 @@ class Language : public PluginInterface {
420420
llvm::StringRef suffix);
421421

422422
// return false from callback to stop iterating
423-
static void ForAllLanguages(std::function<bool(lldb::LanguageType)> callback);
423+
static void ForAllLanguages(
424+
llvm::function_ref<IterationAction(lldb::LanguageType)> callback);
424425

425426
static bool LanguageIsCPlusPlus(lldb::LanguageType language);
426427

lldb/source/Breakpoint/BreakpointResolverName.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ void BreakpointResolverName::AddNameLookup(ConstString name,
233233
m_lookups.emplace_back(variant_lookup);
234234
}
235235
}
236-
return true;
236+
return IterationAction::Continue;
237237
};
238238

239239
if (Language *lang = Language::FindPlugin(m_language)) {

lldb/source/Commands/CommandObjectType.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2610,7 +2610,7 @@ class CommandObjectTypeLookup : public CommandObjectRaw {
26102610
Language::ForEach([&](Language *lang) {
26112611
if (const char *help = lang->GetLanguageSpecificTypeLookupHelp())
26122612
stream.Printf("%s\n", help);
2613-
return true;
2613+
return IterationAction::Continue;
26142614
});
26152615

26162616
m_cmd_help_long = std::string(stream.GetString());
@@ -2649,7 +2649,7 @@ class CommandObjectTypeLookup : public CommandObjectRaw {
26492649
(m_command_options.m_language == eLanguageTypeUnknown))) {
26502650
Language::ForEach([&](Language *lang) {
26512651
languages.push_back(lang);
2652-
return true;
2652+
return IterationAction::Continue;
26532653
});
26542654
} else {
26552655
languages.push_back(Language::FindPlugin(m_command_options.m_language));

lldb/source/Core/Mangled.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,9 @@ lldb::LanguageType Mangled::GuessLanguage() const {
428428
Language::ForEach([this, &result](Language *l) {
429429
if (l->SymbolNameFitsToLanguage(*this)) {
430430
result = l->GetLanguageType();
431-
return false;
431+
return IterationAction::Stop;
432432
}
433-
return true;
433+
return IterationAction::Continue;
434434
});
435435
return result;
436436
}

lldb/source/Symbol/Symtab.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ void Symtab::InitNameIndexes() {
289289
std::vector<Language *> languages;
290290
Language::ForEach([&languages](Language *l) {
291291
languages.push_back(l);
292-
return true;
292+
return IterationAction::Continue;
293293
});
294294

295295
auto &name_to_index = GetNameToSymbolIndexMap(lldb::eFunctionNameTypeNone);

lldb/source/Target/Language.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ Language *Language::FindPlugin(llvm::StringRef file_path) {
111111
ForEach([&result, file_path](Language *language) {
112112
if (language->IsSourceFile(file_path)) {
113113
result = language;
114-
return false;
114+
return IterationAction::Stop;
115115
}
116-
return true;
116+
return IterationAction::Continue;
117117
});
118118
return result;
119119
}
@@ -128,7 +128,8 @@ Language *Language::FindPlugin(LanguageType language,
128128
return result;
129129
}
130130

131-
void Language::ForEach(std::function<bool(Language *)> callback) {
131+
void Language::ForEach(
132+
llvm::function_ref<IterationAction(Language *)> callback) {
132133
// If we want to iterate over all languages, we first have to complete the
133134
// LanguagesMap.
134135
static llvm::once_flag g_initialize;
@@ -153,7 +154,7 @@ void Language::ForEach(std::function<bool(Language *)> callback) {
153154
}
154155

155156
for (auto *lang : loaded_plugins) {
156-
if (!callback(lang))
157+
if (callback(lang) == IterationAction::Stop)
157158
break;
158159
}
159160
}
@@ -289,9 +290,9 @@ void Language::PrintAllLanguages(Stream &s, const char *prefix,
289290
}
290291

291292
void Language::ForAllLanguages(
292-
std::function<bool(lldb::LanguageType)> callback) {
293+
llvm::function_ref<IterationAction(lldb::LanguageType)> callback) {
293294
for (uint32_t i = 1; i < num_languages; i++) {
294-
if (!callback(language_names[i].type))
295+
if (callback(language_names[i].type) == IterationAction::Stop)
295296
break;
296297
}
297298
}
@@ -416,7 +417,7 @@ std::set<lldb::LanguageType> Language::GetSupportedLanguages() {
416417
std::set<lldb::LanguageType> supported_languages;
417418
ForEach([&](Language *lang) {
418419
supported_languages.emplace(lang->GetLanguageType());
419-
return true;
420+
return IterationAction::Continue;
420421
});
421422
return supported_languages;
422423
}

0 commit comments

Comments
 (0)