Fix seg fault on exit

This commit is contained in:
2025-12-06 22:14:40 -05:00
parent 0f7f84bdea
commit f8bd3e9a97
2 changed files with 6 additions and 1 deletions

View File

@@ -7,6 +7,8 @@
#include "ElunaMgr.h"
#include "LuaEngine.h"
bool ElunaMgr::_shuttingDown = false;
ElunaMgr::ElunaMgr()
{
}
@@ -19,6 +21,7 @@ ElunaMgr* ElunaMgr::instance()
ElunaMgr::~ElunaMgr()
{
_shuttingDown = true;
}
void ElunaMgr::Create(Map* map, ElunaInfo const& info)
@@ -57,7 +60,7 @@ void ElunaMgr::Destroy(ElunaInfo const& info)
ElunaInfo::~ElunaInfo()
{
if (IsValid() && sElunaMgr)
if (IsValid() && !ElunaMgr::IsShuttingDown())
sElunaMgr->Destroy(key);
}

View File

@@ -92,6 +92,7 @@ private:
public:
static ElunaMgr* instance();
static bool IsShuttingDown() { return _shuttingDown; }
void Create(Map* map, ElunaInfo const& info);
@@ -103,6 +104,7 @@ public:
private:
std::unordered_map<ElunaInfoKey, std::unique_ptr<Eluna>> _elunaMap;
static bool _shuttingDown;
};
#define sElunaMgr ElunaMgr::instance()