summaryrefslogtreecommitdiffstats
path: root/lldb/source/DataFormatters/LibCxx.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2014-03-31 23:02:25 +0000
committerEnrico Granata <egranata@apple.com>2014-03-31 23:02:25 +0000
commit7ca1c765204cca7cca0ac248ccfffbe184d80719 (patch)
tree3204b747a23b9918470ba59248275f1bbe38f3f5 /lldb/source/DataFormatters/LibCxx.cpp
parentdeb1e4adc1fd0c80b464bda39ac7f724dea20f47 (diff)
downloadbcm5719-llvm-7ca1c765204cca7cca0ac248ccfffbe184d80719.tar.gz
bcm5719-llvm-7ca1c765204cca7cca0ac248ccfffbe184d80719.zip
<rdar://problem/16424592>
For some reason, the libc++ vector<bool> data formatter was essentially a costly no-up, doing everything required of it, except actually generating the child values! This restores its functionality llvm-svn: 205259
Diffstat (limited to 'lldb/source/DataFormatters/LibCxx.cpp')
-rw-r--r--lldb/source/DataFormatters/LibCxx.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/lldb/source/DataFormatters/LibCxx.cpp b/lldb/source/DataFormatters/LibCxx.cpp
index 585c2e65207..174202661f0 100644
--- a/lldb/source/DataFormatters/LibCxx.cpp
+++ b/lldb/source/DataFormatters/LibCxx.cpp
@@ -139,11 +139,11 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::GetChildAtIndex (si
return ValueObjectSP();
}
bool bit_set = ((byte & mask) != 0);
- ValueObjectSP retval_sp;
DataBufferSP buffer_sp(new DataBufferHeap(m_bool_type.GetByteSize(),0));
if (bit_set && buffer_sp && buffer_sp->GetBytes())
*(buffer_sp->GetBytes()) = 1; // regardless of endianness, anything non-zero is true
StreamString name; name.Printf("[%" PRIu64 "]", (uint64_t)idx);
+ ValueObjectSP retval_sp(ValueObject::CreateValueObjectFromData(name.GetData(), DataExtractor(buffer_sp, process_sp->GetByteOrder(), process_sp->GetAddressByteSize()), m_exe_ctx_ref, m_bool_type));
if (retval_sp)
m_children[idx] = retval_sp;
return retval_sp;
@@ -166,8 +166,6 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::Update()
ValueObjectSP valobj_sp = m_backend.GetSP();
if (!valobj_sp)
return false;
- if (!valobj_sp)
- return false;
m_exe_ctx_ref = valobj_sp->GetExecutionContextRef();
ValueObjectSP size_sp(valobj_sp->GetChildMemberWithName(ConstString("__size_"), true));
if (!size_sp)
OpenPOWER on IntegriCloud