diff options
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp b/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp index f1ac8ef998..12c36f3dd6 100644 --- a/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp +++ b/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp @@ -87,14 +87,17 @@ qint64 QV4ProfilerAdapter::appendMemoryEvents(qint64 until, QList<QByteArray> &m qint64 QV4ProfilerAdapter::finalizeMessages(qint64 until, QList<QByteArray> &messages, qint64 callNext, QQmlDebugPacket &d) { + qint64 memoryNext = -1; + if (callNext == -1) { m_functionLocations.clear(); m_functionCallData.clear(); m_functionCallPos = 0; + memoryNext = appendMemoryEvents(until, messages, d); + } else { + memoryNext = appendMemoryEvents(qMin(callNext, until), messages, d); } - qint64 memoryNext = appendMemoryEvents(until, messages, d); - if (memoryNext == -1) { m_memoryData.clear(); m_memoryPos = 0; @@ -104,8 +107,7 @@ qint64 QV4ProfilerAdapter::finalizeMessages(qint64 until, QList<QByteArray> &mes return callNext == -1 ? memoryNext : qMin(callNext, memoryNext); } -qint64 QV4ProfilerAdapter::sendMessages(qint64 until, QList<QByteArray> &messages, - bool trackLocations) +qint64 QV4ProfilerAdapter::sendMessages(qint64 until, QList<QByteArray> &messages) { QQmlDebugPacket d; @@ -134,24 +136,17 @@ qint64 QV4ProfilerAdapter::sendMessages(qint64 until, QList<QByteArray> &message appendMemoryEvents(props.start, messages, d); auto location = m_functionLocations.find(props.id); - d << props.start << int(RangeStart) << int(Javascript); - if (trackLocations) - d << static_cast<qint64>(props.id); + d << props.start << int(RangeStart) << int(Javascript) << static_cast<qint64>(props.id); if (location != m_functionLocations.end()) { messages.push_back(d.squeezedData()); d.clear(); d << props.start << int(RangeLocation) << int(Javascript) << location->file << location->line - << location->column; - if (trackLocations) - d << static_cast<qint64>(props.id); + << location->column << static_cast<qint64>(props.id); messages.push_back(d.squeezedData()); d.clear(); - d << props.start << int(RangeData) << int(Javascript) << location->name; - - if (trackLocations) { - d << static_cast<qint64>(props.id); - m_functionLocations.erase(location); - } + d << props.start << int(RangeData) << int(Javascript) << location->name + << static_cast<qint64>(props.id); + m_functionLocations.erase(location); } messages.push_back(d.squeezedData()); d.clear(); |