aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptMgr.cpp
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2016-07-13 21:58:50 +0200
committerNaios <naios-dev@live.de>2016-07-13 22:01:14 +0200
commit58dd647a887a1f889560be561ef5a9bad0abdbdf (patch)
treebf0bc71f28d08e7fa9a96f1468770180b4bc7129 /src/server/game/Scripting/ScriptMgr.cpp
parentdb85bad1ff349d2e710de34d2a3dd8ae2a2a07a8 (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.cpp8
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);