forked from qt-creator/qt-creator
TextEditorWidgetPrivate: Disconnect more signals in d'tor
After the TextEditorWidgetPrivate's d'tor has finished, compiler starts destructing all the member fields of TextEditorWidgetPrivate before calling base QObject d'tor. Some d'tors of some members may still emit signals which are connected to TextEditorWidgetPrivate's slots. In this case we may start operating on corrupted internals. Fixes: QTCREATORBUG-26001 Change-Id: I865cad16601b278fe7f7cf95145557310bb83126 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -854,8 +854,16 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent)
|
||||
|
||||
TextEditorWidgetPrivate::~TextEditorWidgetPrivate()
|
||||
{
|
||||
QObject::disconnect(m_document.data(), &TextDocument::markRemoved,
|
||||
this, &TextEditorWidgetPrivate::markRemoved);
|
||||
QTextDocument *doc = m_document->document();
|
||||
QTC_CHECK(doc);
|
||||
auto documentLayout = qobject_cast<TextDocumentLayout*>(doc->documentLayout());
|
||||
QTC_CHECK(documentLayout);
|
||||
QTC_CHECK(m_document.data());
|
||||
documentLayout->disconnect(this);
|
||||
documentLayout->disconnect(m_extraArea);
|
||||
doc->disconnect(this);
|
||||
m_document.data()->disconnect(this);
|
||||
q->disconnect(documentLayout);
|
||||
q->disconnect(this);
|
||||
delete m_toolBarWidget;
|
||||
delete m_highlightScrollBarController;
|
||||
|
||||
Reference in New Issue
Block a user