X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitrace.cpp;h=db5741790c213ca85946cbc60fbf4d16739c22d3;hb=d9d9d22837705de6a2c42ad3f9b23223a2b98fe0;hp=a69ce2fff0ef25a2f0293e392e273f9b4ecc1b4d;hpb=4f74cc67dd2b46d2abc0be5663c992410420091b;p=apitrace diff --git a/gui/apitrace.cpp b/gui/apitrace.cpp index a69ce2f..db57417 100644 --- a/gui/apitrace.cpp +++ b/gui/apitrace.cpp @@ -19,9 +19,9 @@ ApiTrace::ApiTrace() connect(m_loader, SIGNAL(framesLoaded(const QList)), this, SLOT(addFrames(const QList))); connect(m_loader, - SIGNAL(frameContentsLoaded(ApiTraceFrame*,QVector,quint64)), + SIGNAL(frameContentsLoaded(ApiTraceFrame*,QVector, QVector,quint64)), this, - SLOT(loaderFrameLoaded(ApiTraceFrame*,QVector,quint64))); + SLOT(loaderFrameLoaded(ApiTraceFrame*,QVector,QVector,quint64))); connect(m_loader, SIGNAL(guessedApi(int)), this, SLOT(guessedApi(int))); connect(m_loader, SIGNAL(finishedParsing()), @@ -107,7 +107,7 @@ int ApiTrace::numCallsInFrame(int idx) const { const ApiTraceFrame *frame = frameAt(idx); if (frame) { - return frame->numChildren(); + return frame->numTotalCalls(); } else { return 0; } @@ -263,14 +263,15 @@ void ApiTrace::finishedParsing() } void ApiTrace::loaderFrameLoaded(ApiTraceFrame *frame, + const QVector &topLevelItems, const QVector &calls, quint64 binaryDataSize) { - Q_ASSERT(frame->numChildrenToLoad() == calls.size()); + Q_ASSERT(frame->numChildrenToLoad() >= calls.size()); if (!frame->isLoaded()) { emit beginLoadingFrame(frame, calls.size()); - frame->setCalls(calls, binaryDataSize); + frame->setCalls(topLevelItems, calls, binaryDataSize); emit endLoadingFrame(frame); m_loadingFrames.remove(frame); } @@ -444,7 +445,7 @@ int ApiTrace::callInFrame(int callIdx) const for (int frameIdx = 0; frameIdx < m_frames.size(); ++frameIdx) { const ApiTraceFrame *frame = m_frames[frameIdx]; unsigned numCallsInFrame = frame->isLoaded() - ? frame->numChildren() + ? frame->numTotalCalls() : frame->numChildrenToLoad(); unsigned firstCall = numCalls; unsigned endCall = numCalls + numCallsInFrame;