diff options
| author | megamage <none@none.none> | 2011-12-15 10:52:09 -0500 |
|---|---|---|
| committer | megamage <none@none.none> | 2011-12-15 10:52:09 -0500 |
| commit | 6a4d68b8c207149b7513823341cb8a64f238abb7 (patch) | |
| tree | b823b3cf29f31fb9345edbd572a253cd5de428f7 /src | |
| parent | ee8ed0247cdb96f59d12867fa6feeff90c9120b0 (diff) | |
Fix a crash caused by m_itemSoulboundTradeable. Fix #4266.
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 61428d2afba..bd85968ca9a 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13300,11 +13300,7 @@ void Player::UpdateSoulboundTradeItems() // also checks for garbage data for (ItemDurationList::iterator itr = m_itemSoulboundTradeable.begin(); itr != m_itemSoulboundTradeable.end();) { - if (!*itr) - { - m_itemSoulboundTradeable.erase(itr++); - continue; - } + ASSERT(*itr); if ((*itr)->GetOwnerGUID() != GetGUID()) { m_itemSoulboundTradeable.erase(itr++); @@ -13319,16 +13315,10 @@ void Player::UpdateSoulboundTradeItems() } } +//TODO: should never allow an item to be added to m_itemSoulboundTradeable twice void Player::RemoveTradeableItem(Item* item) { - for (ItemDurationList::iterator itr = m_itemSoulboundTradeable.begin(); itr != m_itemSoulboundTradeable.end(); ++itr) - { - if ((*itr) == item) - { - m_itemSoulboundTradeable.erase(itr); - break; - } - } + m_itemSoulboundTradeable.remove(item); } void Player::UpdateItemDuration(uint32 time, bool realtimeonly) |
