[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