[lldb] NFC: refactor CompileUnit::ResolveSymbolContext

Summary:
I found the above named method hard to read because it had

a) many nested blocks and
b) one return statement at the end with some logic involved.

I decided to refactor this function by employing an early exit strategy.
In order to capture the logic in the return statement and to not have it
repeated more than once I chose to implement a very small lamda function
that captures all the variables it needs.

This is a non-functional change (NFC).

Reviewers: jdoerfert

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D70774
This commit is contained in:
Konrad Kleine
2019-11-27 10:57:06 +01:00
parent 3c3aca245e
commit 373e2a4f69
4 changed files with 71 additions and 90 deletions

View File

@@ -40,14 +40,13 @@ Searcher::CallbackReturn
AddressResolverFileLine::SearchCallback(SearchFilter &filter,
SymbolContext &context, Address *addr) {
SymbolContextList sc_list;
uint32_t sc_list_size;
CompileUnit *cu = context.comp_unit;
Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_BREAKPOINTS));
sc_list_size =
cu->ResolveSymbolContext(m_file_spec, m_line_number, m_inlines, false,
eSymbolContextEverything, sc_list);
cu->ResolveSymbolContext(m_file_spec, m_line_number, m_inlines, false,
eSymbolContextEverything, sc_list);
uint32_t sc_list_size = sc_list.GetSize();
for (uint32_t i = 0; i < sc_list_size; i++) {
SymbolContext sc;
if (sc_list.GetContextAtIndex(i, sc)) {