From 3932fc8c83f10c75ec4ea7a671218975de79a85c Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Thu, 19 Aug 2010 00:13:09 +0200 Subject: - Fix Linux build (huge thanks to Aokromes for testing as always) - Some work towards resolving the crash on shutdown by implementing a shutdown task --HG-- branch : trunk --- src/server/game/Server/Protocol/Handlers/QueryHandler.cpp | 6 ++++-- src/server/game/Server/WorldSession.cpp | 4 ++-- src/server/game/Server/WorldSession.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) (limited to 'src/server/game') diff --git a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp index a830ff09ed6..0e1a58701bd 100644 --- a/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/QueryHandler.cpp @@ -60,7 +60,7 @@ void WorldSession::SendNameQueryOpcode(Player *p) void WorldSession::SendNameQueryOpcodeFromDB(uint64 guid) { - m_nameQueryCallbacks.insert( + ACE_Future lFutureResult = CharacterDatabase.AsyncPQuery( !sWorld.getConfig(CONFIG_DECLINED_NAMES_USED) ? // ------- Query Without Declined Names -------- @@ -74,9 +74,11 @@ void WorldSession::SendNameQueryOpcodeFromDB(uint64 guid) // 5 6 7 8 9 "genitive, dative, accusative, instrumental, prepositional " "FROM characters LEFT JOIN character_declinedname ON characters.guid = character_declinedname.guid WHERE characters.guid = '%u'", - GUID_LOPART(guid)) + GUID_LOPART(guid) ); + m_nameQueryCallbacks.insert(lFutureResult); + // CharacterDatabase.AsyncPQuery(&WorldSession::SendNameQueryOpcodeFromDBCallBack, GetAccountId(), } diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 9dc27b07a85..a28b76e3190 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -994,7 +994,7 @@ void WorldSession::ProcessQueryCallbacks() //! HandleAddFriendOpcode if (m_addFriendCallback.IsReady()) { - std::string& param = m_addFriendCallback.GetParam(); + const std::string& param = m_addFriendCallback.GetParam(); m_addFriendCallback.GetResult(result); HandleAddFriendOpcodeCallBack(result, param); m_addFriendCallback.FreeResult(); @@ -1003,7 +1003,7 @@ void WorldSession::ProcessQueryCallbacks() //- HandleCharRenameOpcode if (m_charRenameCallback.IsReady()) { - std::string& param = m_charRenameCallback.GetParam(); + const std::string& param = m_charRenameCallback.GetParam(); m_charRenameCallback.GetResult(result); HandleChangePlayerNameOpcodeCallBack(result, param); m_charRenameCallback.FreeResult(); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index a8578056d5a..26bfbcf7b1f 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -802,7 +802,7 @@ class WorldSession private: void ProcessQueryCallbacks(); - QueryResultFutureSet m_nameQueryCallbacks; + ACE_Future_Set m_nameQueryCallbacks; QueryResultFuture m_charEnumCallback; QueryResultFuture m_addIgnoreCallback; QueryCallback m_charRenameCallback; -- cgit v1.2.3