file.close();
Trace::Parser p;
+ QVector<ApiTraceCall*> calls;
+ quint64 binaryDataSize = 0;
if (p.open(m_fileName.toLatin1().constData())) {
Trace::Call *call = p.parse_call();
while (call) {
}
ApiTraceCall *apiCall =
apiCallFromTraceCall(call, helpHash, currentFrame);
- currentFrame->addCall(apiCall);
+ calls.append(apiCall);
+ if (apiCall->hasBinaryData()) {
+ QByteArray data =
+ apiCall->arguments()[apiCall->binaryDataIndex()].toByteArray();
+ binaryDataSize += data.size();
+ }
if (ApiTrace::isCallAFrameMarker(apiCall,
m_frameMarker)) {
+ calls.squeeze();
+ currentFrame->setCalls(calls, binaryDataSize);
+ calls.clear();
frames.append(currentFrame);
currentFrame = 0;
+ binaryDataSize = 0;
if (frames.count() >= FRAMES_TO_CACHE) {
emit parsedFrames(frames);
frames.clear();