forked from OSchip/llvm-project
Don't copy entire value into m_data unless we need to. If we did this and the entire variable failed to be read, we wouldn't be able to display any actual values that were in good memory. This will also make things more efficient by not have every struct/union/class/array copy its entire value into a ValueObject.m_data even though no one was using it.
llvm-svn: 199953
This commit is contained in:
parent
bc8911807c
commit
1e3be5ba2c
|
@ -978,14 +978,14 @@ ValueObject::GetPointeeData (DataExtractor& data,
|
|||
ValueObjectSP pointee_sp = Dereference(error);
|
||||
if (error.Fail() || pointee_sp.get() == NULL)
|
||||
return 0;
|
||||
return pointee_sp->GetDataExtractor().Copy(data);
|
||||
return pointee_sp->GetData(data);
|
||||
}
|
||||
else
|
||||
{
|
||||
ValueObjectSP child_sp = GetChildAtIndex(0, true);
|
||||
if (child_sp.get() == NULL)
|
||||
return 0;
|
||||
return child_sp->GetDataExtractor().Copy(data);
|
||||
return child_sp->GetData(data);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -207,7 +207,10 @@ ValueObjectChild::UpdateValue ()
|
|||
if (m_error.Success())
|
||||
{
|
||||
ExecutionContext exe_ctx (GetExecutionContextRef().Lock());
|
||||
m_error = m_value.GetValueAsData (&exe_ctx, m_data, 0, GetModule().get());
|
||||
if (GetClangType().GetTypeInfo() & ClangASTType::eTypeHasValue)
|
||||
m_error = m_value.GetValueAsData (&exe_ctx, m_data, 0, GetModule().get());
|
||||
else
|
||||
m_error.Clear(); // No value so nothing to read...
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue