diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2018-02-19 12:52:56 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2018-02-19 13:29:04 +0000 |
commit | adb144ca9d1ee8d51bea7af39fd33d499fa3ac87 (patch) | |
tree | 81ca79bac316f5926cad28933009a99029b26617 /examples | |
parent | 72b52812bb4023160511c8924d2bea50f863ea4c (diff) |
Fix crash while accessing a dangling pointer
The signals will still be received by the application, even
though it is shutting down and the ui pointer was already delete.
Change-Id: I78d8d001ef0ef9ef3a78b97e39fd80c03be68224
Reviewed-by: Lucie Gerard <lucie.gerard@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/knx/knxeditor/mainwindow.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/examples/knx/knxeditor/mainwindow.cpp b/examples/knx/knxeditor/mainwindow.cpp index 99f2ede..76db29c 100644 --- a/examples/knx/knxeditor/mainwindow.cpp +++ b/examples/knx/knxeditor/mainwindow.cpp @@ -93,6 +93,9 @@ MainWindow::MainWindow(QWidget *parent) m_discoveryAgent.setTimeout(5000); connect(&m_discoveryAgent, &QKnxNetIpServerDiscoveryAgent::started, this, [&] { + if (!ui) + return; + ui->scanButton->setEnabled(false); ui->checkboxNat->setEnabled(false); @@ -106,6 +109,9 @@ MainWindow::MainWindow(QWidget *parent) firstItem->setSelectable(false); }); connect(&m_discoveryAgent, &QKnxNetIpServerDiscoveryAgent::finished, this, [&] { + if (!ui) + return; + ui->scanButton->setEnabled(true); ui->checkboxNat->setEnabled(true); @@ -126,6 +132,9 @@ MainWindow::MainWindow(QWidget *parent) QOverload<>::of(&QKnxNetIpServerDiscoveryAgent::start)); connect(ui->checkboxNat, &QCheckBox::toggled, this, [&](bool checked) { + if (!ui) + return; + ui->tunneling->setNatAware(checked); m_discoveryAgent.setNatAware(checked); ui->deviceManagement->setNatAware(checked); @@ -154,8 +163,9 @@ MainWindow::MainWindow(QWidget *parent) MainWindow::~MainWindow() { - s_ui = 0; + s_ui = nullptr; delete ui; + ui = nullptr; } void MainWindow::newServerSelected(int serverBoxIndex) |