Modified ClangExpressionDeclMap to use existing

ValueObjects when creating variables referring to
live data rather than constructing
ValueObjectConstResults.

llvm-svn: 145437
This commit is contained in:
Sean Callanan 2011-11-29 22:03:21 +00:00
parent f545f67de3
commit 0712f46f4f
2 changed files with 10 additions and 8 deletions

View File

@ -909,10 +909,14 @@ private:
///
/// @param[in] var
/// The LLDB Variable that needs a Decl.
///
/// @param[in] valobj
/// The LLDB ValueObject for that variable.
//------------------------------------------------------------------
void
AddOneVariable (NameSearchContext &context,
lldb::VariableSP var,
lldb::ValueObjectSP valobj,
unsigned int current_id);
//------------------------------------------------------------------

View File

@ -2507,7 +2507,7 @@ ClangExpressionDeclMap::FindExternalVisibleDecls (NameSearchContext &context,
// 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 @@ ClangExpressionDeclMap::FindExternalVisibleDecls (NameSearchContext &context,
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 @@ ClangExpressionDeclMap::GetVariableValue
}
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 @@ ClangExpressionDeclMap::AddOneVariable (NameSearchContext &context, VariableSP v
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;