From b9417f5a724177369869a7cf8b29c4db2d670ef8 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Tue, 1 Oct 2024 18:29:23 +0200 Subject: [PATCH] Crashfix on remote provisionning (restart of application) --- Linphone/core/App.cpp | 9 +++++++-- Linphone/view/Page/Form/Login/SIPLoginPage.qml | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Linphone/core/App.cpp b/Linphone/core/App.cpp index 9bfd80428..11e0064c5 100644 --- a/Linphone/core/App.cpp +++ b/Linphone/core/App.cpp @@ -498,7 +498,7 @@ void App::initCore() { void App::initCppInterfaces() { qmlRegisterSingletonType( Constants::MainQmlUri, 1, 0, "LoginPageCpp", [](QQmlEngine *engine, QJSEngine *) -> QObject * { - static auto loginPage = new LoginPage(engine); + static auto loginPage = new LoginPage(); App::getInstance()->mEngine->setObjectOwnership(loginPage, QQmlEngine::CppOwnership); return loginPage; }); @@ -585,6 +585,8 @@ void App::initCppInterfaces() { //------------------------------------------------------------ void App::clean() { + mEngine->clearComponentCache(); + mEngine->clearSingletons(); delete mEngine; mEngine = nullptr; // Wait 500ms to let time for log te be stored. @@ -600,7 +602,10 @@ void App::restart() { mCoreModelConnection->invokeToModel([this]() { CoreModel::getInstance()->getCore()->stop(); mCoreModelConnection->invokeToCore([this]() { - mEngine->deleteLater(); + mEngine->clearComponentCache(); + mEngine->clearSingletons(); + delete mEngine; + mEngine = nullptr; if (mSettings) mSettings.reset(); initCore(); // Retrieve self from current Core/Model connection and reset Qt connections. diff --git a/Linphone/view/Page/Form/Login/SIPLoginPage.qml b/Linphone/view/Page/Form/Login/SIPLoginPage.qml index 4d2671e34..32f55ae02 100644 --- a/Linphone/view/Page/Form/Login/SIPLoginPage.qml +++ b/Linphone/view/Page/Form/Login/SIPLoginPage.qml @@ -226,7 +226,7 @@ LoginLayout { Connections { target: SettingsCpp function onAssistantThirdPartySipAccountDomainChanged() { - domain.resetText() + domainEdit.resetText() } } }