Fix segfault in deinitState when original initState failed

This commit is contained in:
Thulinma 2023-05-01 15:20:53 +02:00
parent e6621fc09c
commit 8d623e9609

View file

@ -211,31 +211,31 @@ namespace Controller{
void deinitState(bool leaveBehind){ void deinitState(bool leaveBehind){
tthread::lock_guard<tthread::mutex> guard(logMutex); tthread::lock_guard<tthread::mutex> guard(logMutex);
if (!leaveBehind){ if (!leaveBehind){
rlxLogs->setExit(); if (rlxLogs){rlxLogs->setExit();}
shmLogs->master = true; if (shmLogs){shmLogs->master = true;}
rlxAccs->setExit(); if (rlxAccs){rlxAccs->setExit();}
shmAccs->master = true; if (shmAccs){shmAccs->master = true;}
rlxStrm->setExit(); if (rlxStrm){rlxStrm->setExit();}
shmStrm->master = true; if (shmStrm){shmStrm->master = true;}
}else{ }else{
shmLogs->master = false; if (shmLogs){shmLogs->master = false;}
shmAccs->master = false; if (shmAccs){shmAccs->master = false;}
shmStrm->master = false; if (shmStrm){shmStrm->master = false;}
} }
Util::RelAccX *tmp = rlxLogs; Util::RelAccX *tmp = rlxLogs;
rlxLogs = 0; rlxLogs = 0;
delete tmp; if (tmp){delete tmp;}
delete shmLogs; if (shmLogs){delete shmLogs;}
shmLogs = 0; shmLogs = 0;
tmp = rlxAccs; tmp = rlxAccs;
rlxAccs = 0; rlxAccs = 0;
delete tmp; if (tmp){delete tmp;}
delete shmAccs; if (shmAccs){delete shmAccs;}
shmAccs = 0; shmAccs = 0;
tmp = rlxStrm; tmp = rlxStrm;
rlxStrm = 0; rlxStrm = 0;
delete tmp; if (tmp){delete tmp;}
delete shmStrm; if (shmStrm){delete shmStrm;}
shmStrm = 0; shmStrm = 0;
} }