summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/ValueObjectConstResultImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core/ValueObjectConstResultImpl.cpp')
-rw-r--r--lldb/source/Core/ValueObjectConstResultImpl.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/lldb/source/Core/ValueObjectConstResultImpl.cpp b/lldb/source/Core/ValueObjectConstResultImpl.cpp
index 119ba015590..afe050291b0 100644
--- a/lldb/source/Core/ValueObjectConstResultImpl.cpp
+++ b/lldb/source/Core/ValueObjectConstResultImpl.cpp
@@ -40,7 +40,8 @@ using namespace lldb_private;
ValueObjectConstResultImpl::ValueObjectConstResultImpl (ValueObject* valobj,
lldb::addr_t live_address) :
m_impl_backend(valobj),
- m_live_address(live_address),
+ m_live_address(live_address),
+ m_live_address_type(eAddressTypeLoad),
m_load_addr_backend(),
m_address_of_backend()
{
@@ -201,6 +202,26 @@ ValueObjectConstResultImpl::AddressOf (Error &error)
return lldb::ValueObjectSP();
}
+lldb::addr_t
+ValueObjectConstResultImpl::GetAddressOf (bool scalar_is_load_address,
+ AddressType *address_type)
+{
+
+ if (m_impl_backend == NULL)
+ return 0;
+
+ if (m_live_address == LLDB_INVALID_ADDRESS)
+ {
+ return m_impl_backend->ValueObject::GetAddressOf (scalar_is_load_address,
+ address_type);
+ }
+
+ if (address_type)
+ *address_type = m_live_address_type;
+
+ return m_live_address;
+}
+
size_t
ValueObjectConstResultImpl::GetPointeeData (DataExtractor& data,
uint32_t item_idx,
OpenPOWER on IntegriCloud