From 18ff58edb3bc186e2114efad34de7ffca803be02 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sun, 30 May 2021 00:23:57 +0200 Subject: Fix use after free from Qml widget --- src/ChatPage.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/ChatPage.cpp') diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index 4ad7bd14..0f16f205 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -171,6 +171,14 @@ ChatPage::ChatPage(QSharedPointer userSettings, QWidget *parent) activateWindow(); }); + connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, this, [this]() { + // ensure the qml context is shutdown before we destroy all other singletons + // Otherwise Qml will try to access the room list or settings, after they have been + // destroyed + topLayout_->removeWidget(view_manager_->getWidget()); + delete view_manager_->getWidget(); + }); + connect( this, &ChatPage::initializeViews, -- cgit 1.5.1