diff options
author | Enrico Granata <egranata@apple.com> | 2015-01-28 00:07:51 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-01-28 00:07:51 +0000 |
commit | 1cd5e921e1011a31ca1de57444b0649a921ccf33 (patch) | |
tree | cd3cfcdd9c8e8afa56132e8e00f1579bb45fb9e5 /lldb/source/Commands | |
parent | b06fe2a704e5132b53f3826823c37caafe5dc23b (diff) | |
download | bcm5719-llvm-1cd5e921e1011a31ca1de57444b0649a921ccf33.tar.gz bcm5719-llvm-1cd5e921e1011a31ca1de57444b0649a921ccf33.zip |
Preparatory infrastructural work to support dynamically determining sizes of ObjC types via the runtime
This is necessary because the byte size of an ObjC class type is not reliably statically knowable (e.g. because superclasses sit deep in frameworks that we have no debug info for)
The lack of reliable size info is a problem when trying to freeze-dry an ObjC instance (not the pointer, the pointee)
This commit lays the foundation for having language runtimes help in figuring out byte sizes, and having ClangASTType ask for runtime help
No feature change as no runtime actually implements the logic, and nowhere is an ExecutionContext passed in yet
llvm-svn: 227274
Diffstat (limited to 'lldb/source/Commands')
-rw-r--r-- | lldb/source/Commands/CommandObjectMemory.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lldb/source/Commands/CommandObjectMemory.cpp b/lldb/source/Commands/CommandObjectMemory.cpp index 569d13a3084..ed650a18602 100644 --- a/lldb/source/Commands/CommandObjectMemory.cpp +++ b/lldb/source/Commands/CommandObjectMemory.cpp @@ -567,7 +567,7 @@ protected: --pointer_count; } - m_format_options.GetByteSizeValue() = clang_ast_type.GetByteSize(); + m_format_options.GetByteSizeValue() = clang_ast_type.GetByteSize(nullptr); if (m_format_options.GetByteSizeValue() == 0) { @@ -690,7 +690,7 @@ protected: if (m_format_options.GetFormatValue().OptionWasSet() == false) m_format_options.GetFormatValue().SetCurrentValue(eFormatDefault); - bytes_read = clang_ast_type.GetByteSize() * m_format_options.GetCountValue().GetCurrentValue(); + bytes_read = clang_ast_type.GetByteSize(nullptr) * m_format_options.GetCountValue().GetCurrentValue(); } else if (m_format_options.GetFormatValue().GetCurrentValue() != eFormatCString) { @@ -1114,7 +1114,7 @@ protected: if (process->GetTarget().EvaluateExpression(m_memory_options.m_expr.GetStringValue(), frame, result_sp) && result_sp.get()) { uint64_t value = result_sp->GetValueAsUnsigned(0); - switch (result_sp->GetClangType().GetByteSize()) + switch (result_sp->GetClangType().GetByteSize(nullptr)) { case 1: { uint8_t byte = (uint8_t)value; |