From ea266e33d66459e2332e2714ee197c5e385f3720 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 15 Apr 2011 09:35:54 +0200 Subject: [PATCH] QmlProfiler: Fix crash on application exit The disconnectClient might be called when the last packet of data arrives, which means we're deleting the connection while it's readyRead() method is still running. Avoid this by using deleteLater(). Reviewed-by: Christiaan Janssen --- src/plugins/qmlprofiler/qmlprofilertool.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 5ef281e4349..8da32b6ac24 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -312,7 +312,9 @@ void QmlProfilerTool::connectToClient() void QmlProfilerTool::disconnectClient() { - delete d->m_client; + // this might be actually be called indirectly by QDDConnectionPrivate::readyRead(), therefore allow + // method to complete before deleting object + d->m_client->deleteLater(); d->m_client = 0; }