From a89dc3eb110b8ad8f081193cf831a813df2daff8 Mon Sep 17 00:00:00 2001 From: subtly Date: Wed, 5 Nov 2014 19:04:14 +0100 Subject: [PATCH] fix crash on quit --- alethzero/MainWin.cpp | 6 ++++-- alethzero/MainWin.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index e907352a7..e2b4cde1c 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -149,7 +149,9 @@ Main::Main(QWidget *parent) : m_webThree.reset(new WebThreeDirect(string("AlethZero/v") + dev::Version + "/" DEV_QUOTED(ETH_BUILD_TYPE) "/" DEV_QUOTED(ETH_BUILD_PLATFORM), getDataDir() + "/AlethZero", false, {"eth", "shh"})); - m_server = unique_ptr(new WebThreeStubServer(&m_qwebConnector, *web3(), keysAsVector(m_myKeys))); + // w3stubserver, on dealloc, deletes m_qwebConnector + m_qwebConnector = new QWebThreeConnector(); // owned by WebThreeStubServer + m_server.reset(new WebThreeStubServer(m_qwebConnector, *web3(), keysAsVector(m_myKeys))); m_server->setIdentities(keysAsVector(owned())); m_server->StartListening(); @@ -158,7 +160,7 @@ Main::Main(QWidget *parent) : // NOTE: no need to delete as QETH_INSTALL_JS_NAMESPACE adopts it. m_qweb = new QWebThree(this); auto qweb = m_qweb; - m_qwebConnector.setQWeb(qweb); + m_qwebConnector->setQWeb(qweb); QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); QWebFrame* f = ui->webView->page()->mainFrame(); diff --git a/alethzero/MainWin.h b/alethzero/MainWin.h index 0ea072a93..e62afb497 100644 --- a/alethzero/MainWin.h +++ b/alethzero/MainWin.h @@ -255,7 +255,7 @@ private: QString m_logHistory; bool m_logChanged = true; - QWebThreeConnector m_qwebConnector; + QWebThreeConnector* m_qwebConnector; std::unique_ptr m_server; QWebThree* m_qweb = nullptr; };