Browse Source

PositionManager: fix bad cleaning of pointers

QGC4.4
Willian Galvani 7 years ago
parent
commit
7cc48870ba
  1. 11
      src/PositionManager/PositionManager.cpp

11
src/PositionManager/PositionManager.cpp

@ -50,8 +50,19 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
void QGCPositionManager::setNmeaSourceDevice(QIODevice* device) void QGCPositionManager::setNmeaSourceDevice(QIODevice* device)
{ {
// stop and release _nmeaSource
if (_nmeaSource) { if (_nmeaSource) {
_nmeaSource->stopUpdates();
disconnect(_nmeaSource);
// if _currentSource is pointing there, point to null
if (_currentSource == _nmeaSource){
_currentSource = nullptr;
}
delete _nmeaSource; delete _nmeaSource;
_nmeaSource = nullptr;
} }
_nmeaSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode, this); _nmeaSource = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode, this);
_nmeaSource->setDevice(device); _nmeaSource->setDevice(device);

Loading…
Cancel
Save