<rdar://problem/13437949>

Making sure that CF*{Array|Dictionary}Ref provide synthetic children correctly.

llvm-svn: 180074
diff --git a/lldb/source/DataFormatters/NSArray.cpp b/lldb/source/DataFormatters/NSArray.cpp
index e62b77c..cef087d 100644
--- a/lldb/source/DataFormatters/NSArray.cpp
+++ b/lldb/source/DataFormatters/NSArray.cpp
@@ -97,10 +97,7 @@
 m_data_64(NULL)
 {
     if (valobj_sp)
-    {
         m_id_type = ClangASTType(valobj_sp->GetClangAST(),valobj_sp->GetClangAST()->ObjCBuiltinIdTy.getAsOpaquePtr());
-        Update();
-    }
 }
 
 size_t
@@ -150,18 +147,12 @@
         return false;
     m_exe_ctx_ref = valobj_sp->GetExecutionContextRef();
     Error error;
-    if (valobj_sp->IsPointerType())
-    {
-        valobj_sp = valobj_sp->Dereference(error);
-        if (error.Fail() || !valobj_sp)
-            return false;
-    }
     error.Clear();
     lldb::ProcessSP process_sp(valobj_sp->GetProcessSP());
     if (!process_sp)
         return false;
     m_ptr_size = process_sp->GetAddressByteSize();
-    uint64_t data_location = valobj_sp->GetAddressOf() + m_ptr_size;
+    uint64_t data_location = valobj_sp->GetValueAsUnsigned(0) + m_ptr_size;
     if (m_ptr_size == 4)
     {
         m_data_32 = new DataDescriptor_32();
@@ -211,10 +202,7 @@
 m_data_ptr(0)
 {
     if (valobj_sp)
-    {
         m_id_type = ClangASTType(valobj_sp->GetClangAST(),valobj_sp->GetClangAST()->ObjCBuiltinIdTy.getAsOpaquePtr());
-        Update();
-    }
 }
 
 lldb_private::formatters::NSArrayISyntheticFrontEnd::~NSArrayISyntheticFrontEnd ()
@@ -249,18 +237,12 @@
         return false;
     m_exe_ctx_ref = valobj_sp->GetExecutionContextRef();
     Error error;
-    if (valobj_sp->IsPointerType())
-    {
-        valobj_sp = valobj_sp->Dereference(error);
-        if (error.Fail() || !valobj_sp)
-            return false;
-    }
     error.Clear();
     lldb::ProcessSP process_sp(valobj_sp->GetProcessSP());
     if (!process_sp)
         return false;
     m_ptr_size = process_sp->GetAddressByteSize();
-    uint64_t data_location = valobj_sp->GetAddressOf() + m_ptr_size;
+    uint64_t data_location = valobj_sp->GetValueAsUnsigned(0) + m_ptr_size;
     m_items = process_sp->ReadPointerFromMemory(data_location, error);
     if (error.Fail())
         return false;