diff --git a/src/game/ScriptMgr.cpp b/src/game/ScriptMgr.cpp index 10dbf4512..c0ed52bb8 100644 --- a/src/game/ScriptMgr.cpp +++ b/src/game/ScriptMgr.cpp @@ -1118,8 +1118,9 @@ ScriptLoadResult ScriptMgr::LoadScriptLibrary(const char* libName) GetScriptHookPtr((P), (N)); \ if (!(P)) \ { \ - MANGOS_CLOSE_LIBRARY(m_hScriptLib); \ - m_hScriptLib = NULL; \ + /* prevent call before init */ \ + m_pOnFreeScriptLibrary = NULL; \ + UnloadScriptLibrary(); \ return SCRIPT_LOAD_ERR_WRONG_API; \ } @@ -1160,7 +1161,11 @@ ScriptLoadResult ScriptMgr::LoadScriptLibrary(const char* libName) # undef GET_SCRIPT_HOOK_PTR if (strcmp(pGetMangosRevStr(), REVISION_NR) != 0) + { + m_pOnFreeScriptLibrary = NULL; // prevent call before init + UnloadScriptLibrary(); return SCRIPT_LOAD_ERR_OUTDATED; + } m_pOnInitScriptLibrary(); return SCRIPT_LOAD_OK; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index b072bb1cd..f181f9a6d 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11476" + #define REVISION_NR "11477" #endif // __REVISION_NR_H__