forked from qt-creator/qt-creator
QmlProfiler: flush on new trace
Discard pending data if a new trace arrives while an old one was still being processed. If we don't, the data of both traces gets mixed, leading to a possible crash. Change-Id: Ibba7df06f6a4b7e93d00f6fa1fa4802baf3a1731 Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
This commit is contained in:
@@ -123,6 +123,13 @@ void QmlProfilerClientManager::clearBufferedData()
|
|||||||
d->v8clientplugin.data()->clearData();
|
d->v8clientplugin.data()->clearData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QmlProfilerClientManager::discardPendingData()
|
||||||
|
{
|
||||||
|
if (d->connection)
|
||||||
|
d->connection->flush();
|
||||||
|
clearBufferedData();
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
// Internal
|
// Internal
|
||||||
void QmlProfilerClientManager::connectClient(quint16 port)
|
void QmlProfilerClientManager::connectClient(quint16 port)
|
||||||
|
@@ -55,6 +55,7 @@ public:
|
|||||||
void setOstConnection(QString ostDevice);
|
void setOstConnection(QString ostDevice);
|
||||||
|
|
||||||
void clearBufferedData();
|
void clearBufferedData();
|
||||||
|
void discardPendingData();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void connectionFailed();
|
void connectionFailed();
|
||||||
|
@@ -476,6 +476,7 @@ void QmlProfilerTool::updateTimeDisplay()
|
|||||||
void QmlProfilerTool::clearData()
|
void QmlProfilerTool::clearData()
|
||||||
{
|
{
|
||||||
d->m_profilerDataModel->clear();
|
d->m_profilerDataModel->clear();
|
||||||
|
d->m_profilerConnections->discardPendingData();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlProfilerTool::clearDisplay()
|
void QmlProfilerTool::clearDisplay()
|
||||||
|
Reference in New Issue
Block a user