Modified ClangExpressionDeclMap to use existing
ValueObjects when creating variables referring to
live data rather than constructing
ValueObjectConstResults.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145437 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Expression/ClangExpressionDeclMap.cpp b/source/Expression/ClangExpressionDeclMap.cpp
index 0ca8808..6da3e44 100644
--- a/source/Expression/ClangExpressionDeclMap.cpp
+++ b/source/Expression/ClangExpressionDeclMap.cpp
@@ -2507,7 +2507,7 @@
// If we found a variable in scope, no need to pull up function names
if (err.Success() && var != NULL)
{
- AddOneVariable(context, var, current_id);
+ AddOneVariable(context, var, valobj, current_id);
context.m_found.variable = true;
return;
}
@@ -2522,7 +2522,8 @@
if (var)
{
- AddOneVariable(context, var, current_id);
+ valobj = frame->TrackGlobalVariable(var, eNoDynamicValues);
+ AddOneVariable(context, var, valobj, current_id);
context.m_found.variable = true;
}
}
@@ -2728,7 +2729,7 @@
}
void
-ClangExpressionDeclMap::AddOneVariable (NameSearchContext &context, VariableSP var, unsigned int current_id)
+ClangExpressionDeclMap::AddOneVariable (NameSearchContext &context, VariableSP var, ValueObjectSP valobj, unsigned int current_id)
{
assert (m_parser_vars.get());
@@ -2757,11 +2758,8 @@
std::string decl_name(context.m_decl_name.getAsString());
ConstString entity_name(decl_name.c_str());
- ClangExpressionVariableSP entity(m_found_entities.CreateVariable (m_parser_vars->m_exe_ctx->GetBestExecutionContextScope (),
- entity_name,
- ut,
- m_parser_vars->m_target_info.byte_order,
- m_parser_vars->m_target_info.address_byte_size));
+ ClangExpressionVariableSP entity(m_found_entities.CreateVariable (valobj));
+
assert (entity.get());
entity->EnableParserVars();
entity->m_parser_vars->m_parser_type = pt;