From 7cc48870bafc5e1be6abe63e2c274c47afd9670e Mon Sep 17 00:00:00 2001 From: Willian Galvani Date: Mon, 17 Dec 2018 20:40:56 -0200 Subject: [PATCH] PositionManager: fix bad cleaning of pointers --- src/PositionManager/PositionManager.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/PositionManager/PositionManager.cpp b/src/PositionManager/PositionManager.cpp index 88c4e2520..5de73d0f6 100644 --- a/src/PositionManager/PositionManager.cpp +++ b/src/PositionManager/PositionManager.cpp @@ -50,8 +50,19 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox) void QGCPositionManager::setNmeaSourceDevice(QIODevice* device) { + // stop and release _nmeaSource if (_nmeaSource) { + _nmeaSource->stopUpdates(); + disconnect(_nmeaSource); + + // if _currentSource is pointing there, point to null + if (_currentSource == _nmeaSource){ + _currentSource = nullptr; + } + delete _nmeaSource; + _nmeaSource = nullptr; + } _nmeaSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode, this); _nmeaSource->setDevice(device); -- 2.22.0