diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2017-04-03 22:44:14 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2017-04-03 22:44:14 -0300 |
| commit | ae9995f463ec9797eaa4a803bdca4fbf5978a9b7 (patch) | |
| tree | d10e50bb8c8b60ceaa8e02da15f74257ffba0a75 /src | |
| parent | 58f2e62098f2c78b77b6b3851709c83f33e1cafd (diff) | |
Core/Auction: wrap item deletions from AHBot auction on a transaction
This speeds up the query execution time tremendously
Refs #19182
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/AuctionHouse/AuctionHouseMgr.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index 0fbcb67bb38..7976b38f37c 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -182,7 +182,7 @@ void AuctionHouseMgr::SendAuctionWonMail(AuctionEntry* auction, SQLTransaction& else { // bidder doesn't exist, delete the item - sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true); + sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true, &trans); } } @@ -247,7 +247,7 @@ void AuctionHouseMgr::SendAuctionExpiredMail(AuctionEntry* auction, SQLTransacti else { // owner doesn't exist, delete the item - sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true); + sAuctionMgr->RemoveAItem(auction->itemGUIDLow, true, &trans); } } @@ -392,7 +392,7 @@ void AuctionHouseMgr::AddAItem(Item* it) mAitems[it->GetGUID().GetCounter()] = it; } -bool AuctionHouseMgr::RemoveAItem(ObjectGuid::LowType id, bool deleteItem) +bool AuctionHouseMgr::RemoveAItem(ObjectGuid::LowType id, bool deleteItem /*= false*/, SQLTransaction* trans /*= nullptr*/) { ItemMap::iterator i = mAitems.find(id); if (i == mAitems.end()) @@ -400,9 +400,9 @@ bool AuctionHouseMgr::RemoveAItem(ObjectGuid::LowType id, bool deleteItem) if (deleteItem) { - SQLTransaction trans = SQLTransaction(nullptr); + ASSERT(trans); i->second->FSetState(ITEM_REMOVED); - i->second->SaveToDB(trans); + i->second->SaveToDB(*trans); } mAitems.erase(i); diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.h b/src/server/game/AuctionHouse/AuctionHouseMgr.h index 136727170e4..fb3f11052bc 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.h +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.h @@ -190,7 +190,7 @@ class TC_GAME_API AuctionHouseMgr void LoadAuctions(); void AddAItem(Item* it); - bool RemoveAItem(ObjectGuid::LowType id, bool deleteItem = false); + bool RemoveAItem(ObjectGuid::LowType id, bool deleteItem = false, SQLTransaction* trans = nullptr); bool PendingAuctionAdd(Player* player, AuctionEntry* aEntry, Item* item); uint32 PendingAuctionCount(const Player* player) const; void PendingAuctionProcess(Player* player); |
