From 445746c402485fcac60c02842d0cb5e0dd605e5c Mon Sep 17 00:00:00 2001 From: Naios Date: Wed, 13 Jul 2016 21:58:50 +0200 Subject: 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 --- src/server/game/Scripting/ScriptMgr.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/server/game/Scripting/ScriptMgr.cpp') 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); -- cgit v1.2.3