forked from qt-creator/qt-creator
SyntaxHighlighterRunner: Delete private from the right thread
Before we were deleting the SyntaxHighlighterRunnerPrivate from the caller thread. However, in case of ThreadedSyntaxHighlighterRunner the private objects lives in m_thread thread, so delete it from there. Change-Id: I4e6d57ef1840a9d34ce02f2bb4423e9e47550f4d Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
This commit is contained in:
@@ -248,7 +248,7 @@ ThreadedSyntaxHighlighterRunner::ThreadedSyntaxHighlighterRunner(SyntaxHighLight
|
|||||||
QTC_ASSERT(document, return);
|
QTC_ASSERT(document, return);
|
||||||
|
|
||||||
d->moveToThread(&m_thread);
|
d->moveToThread(&m_thread);
|
||||||
connect(&m_thread, &QThread::finished, d.get(), [this] { d.release()->deleteLater(); });
|
connect(&m_thread, &QThread::finished, d.get(), &QObject::deleteLater);
|
||||||
m_thread.start();
|
m_thread.start();
|
||||||
|
|
||||||
m_document = document;
|
m_document = document;
|
||||||
@@ -266,6 +266,7 @@ ThreadedSyntaxHighlighterRunner::ThreadedSyntaxHighlighterRunner(SyntaxHighLight
|
|||||||
|
|
||||||
ThreadedSyntaxHighlighterRunner::~ThreadedSyntaxHighlighterRunner()
|
ThreadedSyntaxHighlighterRunner::~ThreadedSyntaxHighlighterRunner()
|
||||||
{
|
{
|
||||||
|
d.release();
|
||||||
m_thread.requestInterruption();
|
m_thread.requestInterruption();
|
||||||
m_thread.quit();
|
m_thread.quit();
|
||||||
m_thread.wait();
|
m_thread.wait();
|
||||||
|
Reference in New Issue
Block a user