浏览代码

Fix possible crash on deletion of adventureInt after GH on shutdown

Ivan Savenko 1 年之前
父节点
当前提交
46669e78e8
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      client/gui/CGuiHandler.cpp

+ 8 - 1
client/gui/CGuiHandler.cpp

@@ -19,6 +19,7 @@
 #include "../eventsSDL/InputHandler.h"
 
 #include "../CGameInfo.h"
+#include "../adventureMap/AdventureMapInterface.h"
 #include "../render/Colors.h"
 #include "../render/Graphics.h"
 #include "../render/IFont.h"
@@ -145,7 +146,13 @@ CGuiHandler::CGuiHandler()
 {
 }
 
-CGuiHandler::~CGuiHandler() = default;
+CGuiHandler::~CGuiHandler()
+{
+	// enforce deletion order on shutdown
+	// all UI elements including adventure map must be destroyed before Gui Handler
+	// proper solution would be removal of adventureInt global
+	adventureInt.reset();
+}
 
 ShortcutHandler & CGuiHandler::shortcuts()
 {