mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 08:21:28 +00:00
Fixed an order-of-operations crash within the Quest Parser classes
This commit is contained in:
parent
5f02de1c95
commit
46f8723314
@ -46,6 +46,12 @@ void QuestParserCollection::RegisterQuestInterface(QuestInterface *qi, std::stri
|
|||||||
_load_precedence.push_back(qi);
|
_load_precedence.push_back(qi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QuestParserCollection::ClearInterfaces() {
|
||||||
|
_interfaces.clear();
|
||||||
|
_extensions.clear();
|
||||||
|
_load_precedence.clear();
|
||||||
|
}
|
||||||
|
|
||||||
void QuestParserCollection::AddVar(std::string name, std::string val) {
|
void QuestParserCollection::AddVar(std::string name, std::string val) {
|
||||||
std::list<QuestInterface*>::iterator iter = _load_precedence.begin();
|
std::list<QuestInterface*>::iterator iter = _load_precedence.begin();
|
||||||
while(iter != _load_precedence.end()) {
|
while(iter != _load_precedence.end()) {
|
||||||
|
|||||||
@ -39,7 +39,8 @@ public:
|
|||||||
~QuestParserCollection();
|
~QuestParserCollection();
|
||||||
|
|
||||||
void RegisterQuestInterface(QuestInterface *qi, std::string ext);
|
void RegisterQuestInterface(QuestInterface *qi, std::string ext);
|
||||||
|
void UnRegisterQuestInterface(QuestInterface *qi, std::string ext);
|
||||||
|
void ClearInterfaces();
|
||||||
void AddVar(std::string name, std::string val);
|
void AddVar(std::string name, std::string val);
|
||||||
void Init();
|
void Init();
|
||||||
void ReloadQuests(bool reset_timers = true);
|
void ReloadQuests(bool reset_timers = true);
|
||||||
|
|||||||
@ -476,6 +476,8 @@ int main(int argc, char** argv) {
|
|||||||
|
|
||||||
entity_list.Clear();
|
entity_list.Clear();
|
||||||
|
|
||||||
|
parse->ClearInterfaces();
|
||||||
|
|
||||||
#ifdef EMBPERL
|
#ifdef EMBPERL
|
||||||
safe_delete(perl_parser);
|
safe_delete(perl_parser);
|
||||||
#endif
|
#endif
|
||||||
@ -496,7 +498,7 @@ int main(int argc, char** argv) {
|
|||||||
dbasync->StopThread();
|
dbasync->StopThread();
|
||||||
safe_delete(taskmanager);
|
safe_delete(taskmanager);
|
||||||
command_deinit();
|
command_deinit();
|
||||||
|
safe_delete(parse);
|
||||||
CheckEQEMuErrorAndPause();
|
CheckEQEMuErrorAndPause();
|
||||||
_log(ZONE__INIT, "Proper zone shutdown complete.");
|
_log(ZONE__INIT, "Proper zone shutdown complete.");
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user