summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/ValueObjectConstResult.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2014-12-08 23:13:56 +0000
committerEnrico Granata <egranata@apple.com>2014-12-08 23:13:56 +0000
commit0c10a85000074f1e8ac0fa88c853ede7b45818d4 (patch)
treedde9dd18ac5ece1dcde76e8e67638baa44d270ed /lldb/source/Core/ValueObjectConstResult.cpp
parentf5b4d655d2de3fcc7b89eb33aef5a95e01aefdb9 (diff)
downloadbcm5719-llvm-0c10a85000074f1e8ac0fa88c853ede7b45818d4.tar.gz
bcm5719-llvm-0c10a85000074f1e8ac0fa88c853ede7b45818d4.zip
Add the ability for an SBValue to create a persisted version of itself.
Such a persisted version is equivalent to evaluating the value via the expression evaluator, and holding on to the $n result of the expression, except this API can be used on SBValues that do not obviously come from an expression (e.g. are the result of a memory lookup) Expose this via SBValue::Persist() in our public API layer, and ValueObject::Persist() in the lldb_private layer Includes testcase Fixes rdar://19136664 llvm-svn: 223711
Diffstat (limited to 'lldb/source/Core/ValueObjectConstResult.cpp')
-rw-r--r--lldb/source/Core/ValueObjectConstResult.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/lldb/source/Core/ValueObjectConstResult.cpp b/lldb/source/Core/ValueObjectConstResult.cpp
index b88830f1934..fc870d72622 100644
--- a/lldb/source/Core/ValueObjectConstResult.cpp
+++ b/lldb/source/Core/ValueObjectConstResult.cpp
@@ -122,9 +122,10 @@ ValueObjectConstResult::Create (ExecutionContextScope *exe_scope,
ValueObjectSP
ValueObjectConstResult::Create (ExecutionContextScope *exe_scope,
Value &value,
- const ConstString &name)
+ const ConstString &name,
+ Module *module)
{
- return (new ValueObjectConstResult (exe_scope, value, name))->GetSP();
+ return (new ValueObjectConstResult (exe_scope, value, name, module))->GetSP();
}
ValueObjectConstResult::ValueObjectConstResult (ExecutionContextScope *exe_scope,
@@ -222,15 +223,18 @@ ValueObjectConstResult::ValueObjectConstResult (ExecutionContextScope *exe_scope
ValueObjectConstResult::ValueObjectConstResult (ExecutionContextScope *exe_scope,
const Value &value,
- const ConstString &name) :
+ const ConstString &name,
+ Module *module) :
ValueObject (exe_scope),
m_type_name (),
m_byte_size (0),
m_impl(this)
{
m_value = value;
- m_value.GetData(m_data);
m_name = name;
+ ExecutionContext exe_ctx;
+ exe_scope->CalculateExecutionContext(exe_ctx);
+ m_error = m_value.GetValueAsData(&exe_ctx, m_data, 0, module);
}
ValueObjectConstResult::~ValueObjectConstResult()
OpenPOWER on IntegriCloud