diff options
author | Naios <naios-dev@live.de> | 2016-07-13 21:58:50 +0200 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2016-07-13 22:01:14 +0200 |
commit | 58dd647a887a1f889560be561ef5a9bad0abdbdf (patch) | |
tree | bf0bc71f28d08e7fa9a96f1468770180b4bc7129 /src/server/game/Scripting/ScriptMgr.cpp | |
parent | db85bad1ff349d2e710de34d2a3dd8ae2a2a07a8 (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
(cherry picked from commit 445746c402485fcac60c02842d0cb5e0dd605e5c)
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 476b87f2440..d7bfc47bf79 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); |