diff options
Diffstat (limited to 'lldb/source/Plugins/Language/ObjC/NSArray.cpp')
-rw-r--r-- | lldb/source/Plugins/Language/ObjC/NSArray.cpp | 58 |
1 files changed, 16 insertions, 42 deletions
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp index 7219c016dfd1..73335aff2fd7 100644 --- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp +++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp @@ -96,31 +96,6 @@ private: D64 *m_data_64; }; -namespace Foundation109 { - struct DataDescriptor_32 { - uint32_t _used; - uint32_t _priv1 : 2; - uint32_t _size : 30; - uint32_t _priv2 : 2; - uint32_t _offset : 30; - uint32_t _priv3; - uint32_t _data; - }; - - struct DataDescriptor_64 { - uint64_t _used; - uint64_t _priv1 : 2; - uint64_t _size : 62; - uint64_t _priv2 : 2; - uint64_t _offset : 62; - uint32_t _priv3; - uint64_t _data; - }; - - using NSArrayMSyntheticFrontEnd = - GenericNSArrayMSyntheticFrontEnd<DataDescriptor_32, DataDescriptor_64>; -} - namespace Foundation1010 { struct DataDescriptor_32 { uint32_t _used; @@ -461,13 +436,12 @@ lldb_private::formatters::NSArrayMSyntheticFrontEndBase::NSArrayMSyntheticFrontE : SyntheticChildrenFrontEnd(*valobj_sp), m_exe_ctx_ref(), m_ptr_size(8), m_id_type() { if (valobj_sp) { - auto *clang_ast_context = valobj_sp->GetExecutionContextRef() - .GetTargetSP() - ->GetScratchClangASTContext(); + auto *clang_ast_context = ClangASTContext::GetScratch( + *valobj_sp->GetExecutionContextRef().GetTargetSP()); if (clang_ast_context) m_id_type = CompilerType( clang_ast_context, - clang_ast_context->getASTContext()->ObjCBuiltinIdTy.getAsOpaquePtr()); + clang_ast_context->getASTContext().ObjCBuiltinIdTy.getAsOpaquePtr()); if (valobj_sp->GetProcessSP()) m_ptr_size = valobj_sp->GetProcessSP()->GetAddressByteSize(); } @@ -610,13 +584,11 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>:: if (valobj_sp) { CompilerType type = valobj_sp->GetCompilerType(); if (type) { - auto *clang_ast_context = valobj_sp->GetExecutionContextRef() - .GetTargetSP() - ->GetScratchClangASTContext(); + auto *clang_ast_context = ClangASTContext::GetScratch( + *valobj_sp->GetExecutionContextRef().GetTargetSP()); if (clang_ast_context) - m_id_type = CompilerType(clang_ast_context, - clang_ast_context->getASTContext() - ->ObjCBuiltinIdTy.getAsOpaquePtr()); + m_id_type = clang_ast_context->GetType( + clang_ast_context->getASTContext().ObjCBuiltinIdTy); } } } @@ -780,11 +752,15 @@ lldb_private::formatters::NSArray1SyntheticFrontEnd::GetChildAtIndex( static const ConstString g_zero("[0]"); if (idx == 0) { - CompilerType id_type( - m_backend.GetTargetSP()->GetScratchClangASTContext()->GetBasicType( - lldb::eBasicTypeObjCID)); - return m_backend.GetSyntheticChildAtOffset( - m_backend.GetProcessSP()->GetAddressByteSize(), id_type, true, g_zero); + auto *clang_ast_context = + ClangASTContext::GetScratch(*m_backend.GetTargetSP()); + if (clang_ast_context) { + CompilerType id_type( + clang_ast_context->GetBasicType(lldb::eBasicTypeObjCID)); + return m_backend.GetSyntheticChildAtOffset( + m_backend.GetProcessSP()->GetAddressByteSize(), id_type, true, + g_zero); + } } return lldb::ValueObjectSP(); } @@ -857,8 +833,6 @@ lldb_private::formatters::NSArraySyntheticFrontEndCreator( return (new Foundation1428::NSArrayMSyntheticFrontEnd(valobj_sp)); if (runtime->GetFoundationVersion() >= 1100) return (new Foundation1010::NSArrayMSyntheticFrontEnd(valobj_sp)); - else - return (new Foundation109::NSArrayMSyntheticFrontEnd(valobj_sp)); } else if (class_name == g_NSCallStackArray) { return (new CallStackArray::NSCallStackArraySyntheticFrontEnd(valobj_sp)); } else { |