From d011a70e97ea192828f9dfd945c3b1f9f4259073 Mon Sep 17 00:00:00 2001 From: H0zen Date: Fri, 25 Mar 2016 15:19:45 +0200 Subject: [PATCH] Fix previous commit. --- src/game/WorldHandlers/ScriptMgr.cpp | 12 +++++++++++- src/game/WorldHandlers/ScriptMgr.h | 12 +++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/game/WorldHandlers/ScriptMgr.cpp b/src/game/WorldHandlers/ScriptMgr.cpp index a074c6e5..f33a5db4 100644 --- a/src/game/WorldHandlers/ScriptMgr.cpp +++ b/src/game/WorldHandlers/ScriptMgr.cpp @@ -55,7 +55,7 @@ INSTANTIATE_SINGLETON_1(ScriptMgr); -ScriptMgr::ScriptMgr() : m_scheduledScripts(0) +ScriptMgr::ScriptMgr() : m_scheduledScripts(0), m_lock(0) { m_dbScripts.resize(DBS_END); @@ -70,6 +70,16 @@ ScriptMgr::~ScriptMgr() m_dbScripts.clear(); } +ScriptChainMap const* ScriptMgr::GetScriptChainMap(DBScriptType type) +{ + ACE_GUARD_RETURN(ACE_Thread_Mutex, _guard, m_lock, NULL) + if ((type != DBS_INTERNAL) && type < DBS_END) + return &m_dbScripts[type]; + + return NULL; +} + + // ///////////////////////////////////////////////////////// // DB SCRIPTS (loaders of static data) // ///////////////////////////////////////////////////////// diff --git a/src/game/WorldHandlers/ScriptMgr.h b/src/game/WorldHandlers/ScriptMgr.h index 3fcbc58a..1e53bdb3 100644 --- a/src/game/WorldHandlers/ScriptMgr.h +++ b/src/game/WorldHandlers/ScriptMgr.h @@ -30,6 +30,8 @@ #include "ObjectGuid.h" #include "DBCEnums.h" #include +#include +#include struct AreaTriggerEntry; struct SpellEntry; @@ -574,13 +576,7 @@ class ScriptMgr bool ReloadScriptBinding(); - ScriptChainMap const* GetScriptChainMap(DBScriptType type) - { - if ((type != DBS_INTERNAL) && type < DBS_END) - return &m_dbScripts[type]; - - return NULL; - } + ScriptChainMap const* GetScriptChainMap(DBScriptType type); const char* GetScriptName(uint32 id) const { @@ -668,6 +664,8 @@ class ScriptMgr #endif /* _DEBUG */ // atomic op counter for active scripts amount ACE_Atomic_Op m_scheduledScripts; + char __cache_guard[1024]; + ACE_Thread_Mutex m_lock; }; // Starters for events