Explorar o código

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

Arseniy Shestakov %!s(int64=9) %!d(string=hai) anos
pai
achega
948cca02cc
Modificáronse 2 ficheiros con 14 adicións e 4 borrados
  1. 12 3
      client/CMT.cpp
  2. 2 1
      server/CVCMIServer.cpp

+ 12 - 3
client/CMT.cpp

@@ -908,17 +908,26 @@ void playIntro()
 
 void dispose()
 {
-	if (console)
-		delete console;
+	if(VLC)
+	{
+		delete VLC;
+		VLC = nullptr;
+	}
 
 	// cleanup, mostly to remove false leaks from analyzer
 	CResourceHandler::clear();
-	if (CCS)
+	if(CCS)
 	{
 		CCS->musich->release();
 		CCS->soundh->release();
 	}
 	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)

+ 2 - 1
server/CVCMIServer.cpp

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