diff options
author | Naios <naios-dev@live.de> | 2016-07-13 21:58:50 +0200 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2016-07-13 21:58:50 +0200 |
commit | 445746c402485fcac60c02842d0cb5e0dd605e5c (patch) | |
tree | 1b44d88945e95728a1f4f930490140dcac3b6404 /src/server/game/Scripting/ScriptMgr.cpp | |
parent | d22569aababdc9eb09efaf558e0a1b262e3bfe79 (diff) |
Core/Scripting: Fix acquiring of references between script swaps
* Delay unloading of shared libraries to the next update tick
to prevent crashes in the destructor of the last referenced
script instance.
* Closes #17557
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 11ebceb08ff..bd3f9cf2bfe 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -987,7 +987,7 @@ void ScriptMgr::Initialize() FillSpellSummary(); // Load core scripts - SetScriptContext("___static___"); + SetScriptContext(GetNameOfStaticContext()); // SmartAI AddSC_SmartScripts(); @@ -1042,6 +1042,12 @@ void ScriptMgr::SwapScriptContext(bool initialize) _currentContext.clear(); } +std::string const& ScriptMgr::GetNameOfStaticContext() +{ + static std::string const name = "___static___"; + return name; +} + void ScriptMgr::ReleaseScriptContext(std::string const& context) { sScriptRegistryCompositum->ReleaseContext(context); |