From c47b8a89c1ca0cba199324e0f9d67982b588ffa7 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Mon, 15 Mar 2010 14:03:13 +0100 Subject: Fix issue with .save or .saveall where either the core would freeze, or items would not be saved to the DB properly. Fixes issue #381 Fixes issue #477 --HG-- branch : trunk --- src/game/Item.cpp | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/game/Item.cpp b/src/game/Item.cpp index 99e4b460caa..1a5dd558c8f 100644 --- a/src/game/Item.cpp +++ b/src/game/Item.cpp @@ -643,17 +643,10 @@ void Item::SetState(ItemUpdateState state, Player *forplayer) void Item::AddToUpdateQueueOf(Player *player) { - if (IsInUpdateQueue()) return; + if (IsInUpdateQueue()) + return; - if (!player) - { - player = GetOwner(); - if (!player) - { - sLog.outDebug("Item::AddToUpdateQueueOf - GetPlayer didn't find a player matching owner's guid (%u)!", GUID_LOPART(GetOwnerGUID())); - return; - } - } + ASSERT(player != NULL); if (player->GetGUID() != GetOwnerGUID()) { @@ -661,7 +654,8 @@ void Item::AddToUpdateQueueOf(Player *player) return; } - if (player->m_itemUpdateQueueBlocked) return; + if (player->m_itemUpdateQueueBlocked) + return; player->m_itemUpdateQueue.push_back(this); uQueuePos = player->m_itemUpdateQueue.size()-1; @@ -669,17 +663,10 @@ void Item::AddToUpdateQueueOf(Player *player) void Item::RemoveFromUpdateQueueOf(Player *player) { - if (!IsInUpdateQueue()) return; + if (!IsInUpdateQueue()) + return; - if (!player) - { - player = GetOwner(); - if (!player) - { - sLog.outDebug("Item::RemoveFromUpdateQueueOf - GetPlayer didn't find a player matching owner's guid (%u)!", GUID_LOPART(GetOwnerGUID())); - return; - } - } + ASSERT(player != NULL) if (player->GetGUID() != GetOwnerGUID()) { @@ -687,7 +674,8 @@ void Item::RemoveFromUpdateQueueOf(Player *player) return; } - if (player->m_itemUpdateQueueBlocked) return; + if (player->m_itemUpdateQueueBlocked) + return; player->m_itemUpdateQueue[uQueuePos] = NULL; uQueuePos = -1; -- cgit v1.2.3