diff options
Diffstat (limited to 'lldb/source/API/SBFrame.cpp')
| -rw-r--r-- | lldb/source/API/SBFrame.cpp | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/lldb/source/API/SBFrame.cpp b/lldb/source/API/SBFrame.cpp index 238464ebaf3..58faed6eea6 100644 --- a/lldb/source/API/SBFrame.cpp +++ b/lldb/source/API/SBFrame.cpp @@ -350,26 +350,25 @@ SBFrame::LookupVarInScope (const char *var_name, const char *scope) if (var_scope != eValueTypeInvalid) { - lldb_private::VariableList variable_list; - SBSymbolContext sc = GetSymbolContext (eSymbolContextEverything); - - SBBlock block = sc.GetBlock(); - if (block.IsValid()) - block.AppendVariables (true, true, &variable_list); - - const uint32_t num_variables = variable_list.GetSize(); - - bool found = false; - for (uint32_t i = 0; i < num_variables && !found; ++i) + lldb_private::VariableList *variable_list = m_opaque_sp->GetVariableList(true); + if (variable_list) { - var_sp = variable_list.GetVariableAtIndex(i); - if (var_sp - && (var_sp.get()->GetName() == lldb_private::ConstString(var_name)) - && var_sp.get()->GetScope() == var_scope) - found = true; + const uint32_t num_variables = variable_list->GetSize(); + bool found = false; + for (uint32_t i = 0; i < num_variables && !found; ++i) + { + var_sp = variable_list->GetVariableAtIndex(i); + if (var_sp + && (var_sp.get()->GetName() == lldb_private::ConstString(var_name)) + && var_sp.get()->GetScope() == var_scope) + { + found = true; + break; + } + } + if (!found) + var_sp.reset(); } - if (!found) - var_sp.reset(); } } |

