1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00

Fixes to some crashes on exit and to have cleaner valgrind output

This commit is contained in:
Arseniy Shestakov
2016-08-18 06:52:10 +03:00
parent 39fe9472b6
commit 948cca02cc
2 changed files with 14 additions and 4 deletions

View File

@ -908,17 +908,26 @@ void playIntro()
void dispose() void dispose()
{ {
if (console) if(VLC)
delete console; {
delete VLC;
VLC = nullptr;
}
// cleanup, mostly to remove false leaks from analyzer // cleanup, mostly to remove false leaks from analyzer
CResourceHandler::clear(); CResourceHandler::clear();
if (CCS) if(CCS)
{ {
CCS->musich->release(); CCS->musich->release();
CCS->soundh->release(); CCS->soundh->release();
} }
CMessage::dispose(); CMessage::dispose();
if(console)
{
delete console; // should be removed after everything else since used by logging
console = nullptr;
}
} }
static bool checkVideoMode(int monitorIndex, int w, int h, int& bpp, bool fullscreen) static bool checkVideoMode(int monitorIndex, int w, int h, int& bpp, bool fullscreen)

View File

@ -635,7 +635,8 @@ int main(int argc, char** argv)
//and return non-zero status so client can detect error //and return non-zero status so client can detect error
throw; throw;
} }
//delete VLC; //can't be re-enabled due to access to already freed memory in bonus system delete VLC;
VLC = nullptr;
CResourceHandler::clear(); CResourceHandler::clear();
return 0; return 0;