summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2018-02-19 12:52:56 +0100
committerKarsten Heimrich <karsten.heimrich@qt.io>2018-02-19 13:29:04 +0000
commitadb144ca9d1ee8d51bea7af39fd33d499fa3ac87 (patch)
tree81ca79bac316f5926cad28933009a99029b26617 /examples
parent72b52812bb4023160511c8924d2bea50f863ea4c (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.cpp12
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)