[Lldb-commits] [lldb] r178729 - <rdar://problem/13563697>

Enrico Granata egranata at apple.com
Wed Apr 3 18:12:13 PDT 2013


Author: enrico
Date: Wed Apr  3 20:12:12 2013
New Revision: 178729

URL: http://llvm.org/viewvc/llvm-project?rev=178729&view=rev
Log:
<rdar://problem/13563697>

The __NSArrayI synthetic children provider was running expressions to generate children, which is inefficient for large amounts of data
Reimplementing to use a faster algorithm

Modified:
    lldb/trunk/source/DataFormatters/NSArray.cpp

Modified: lldb/trunk/source/DataFormatters/NSArray.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/NSArray.cpp?rev=178729&r1=178728&r2=178729&view=diff
==============================================================================
--- lldb/trunk/source/DataFormatters/NSArray.cpp (original)
+++ lldb/trunk/source/DataFormatters/NSArray.cpp Wed Apr  3 20:12:12 2013
@@ -285,14 +285,11 @@ lldb_private::formatters::NSArrayISynthe
     if (!process_sp)
         return lldb::ValueObjectSP();
     Error error;
-    object_at_idx = process_sp->ReadPointerFromMemory(object_at_idx, error);
     if (error.Fail())
         return lldb::ValueObjectSP();
-    StreamString expr;
-    expr.Printf("(id)%" PRIu64,object_at_idx);
     StreamString idx_name;
     idx_name.Printf("[%zu]",idx);
-    lldb::ValueObjectSP retval_sp = ValueObject::CreateValueObjectFromExpression(idx_name.GetData(), expr.GetData(), m_exe_ctx_ref);
+    lldb::ValueObjectSP retval_sp = ValueObject::CreateValueObjectFromAddress(idx_name.GetData(), object_at_idx, m_exe_ctx_ref, m_id_type);
     m_children.push_back(retval_sp);
     return retval_sp;
 }





More information about the lldb-commits mailing list