]> git.cworth.org Git - apitrace/commitdiff
shave a few more megs by sizing trace call list correctly
authorZack Rusin <zack@kde.org>
Sun, 28 Aug 2011 06:38:34 +0000 (02:38 -0400)
committerZack Rusin <zack@kde.org>
Sun, 28 Aug 2011 06:38:34 +0000 (02:38 -0400)
gui/apitrace.cpp

index 9c99cfabf624b0adcbacb72a8ace9327f9567781..f3b95dc13c58e979e05b59da1998318da0dec5f9 100644 (file)
@@ -146,6 +146,7 @@ void ApiTrace::setFrameMarker(FrameMarker marker)
 
 void ApiTrace::addFrames(const QList<ApiTraceFrame*> &frames)
 {
+    QList<ApiTraceCall*> calls;
     int currentFrames = m_frames.count();
     int numNewFrames = frames.count();
 
@@ -158,8 +159,10 @@ void ApiTrace::addFrames(const QList<ApiTraceFrame*> &frames)
     foreach(ApiTraceFrame *frame, frames) {
         Q_ASSERT(this == frame->parentTrace());
         numNewCalls += frame->numChildren();
-        m_calls += frame->calls();
+        calls += frame->calls();
     }
+    m_calls.reserve(m_calls.count() + calls.count());
+    m_calls += calls;
 
     emit endAddingFrames();
     emit callsAdded(currentCalls, numNewCalls);