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:
Jarek Kobus
2024-01-15 15:11:02 +01:00
parent 89e446fb4d
commit e4f5a0f50b

View File

@@ -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();