diff options
| author | jackpoz <giacomopoz@gmail.com> | 2018-08-22 19:44:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-22 19:44:21 +0200 |
| commit | deabd4ab453ee8cf1f515bdb32bf9cf9de7f0591 (patch) | |
| tree | 9f4eeabcf366a6a41a748151fd265208d6261721 /src/server/game | |
| parent | 6e8070ae3388bb48a7a1e97f64ae3f44558319e6 (diff) | |
Core/Packets: Reduce memory footprint of cached queries (#22297)
Ensure only the minimum required memory is used by caching query packets by calling shrink_to_fit()
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/Server/Packet.h | 1 |
5 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 0ac2b3be021..bd1bd4009a0 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -216,6 +216,7 @@ WorldPacket CreatureTemplate::BuildQueryData(LocaleConstant loc) const queryTemp.Stats.CreatureMovementInfoID = movementId; queryTemp.Write(); + queryTemp.ShrinkToFit(); return queryTemp.Move(); } diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index d65f02a404c..ca2242c6aa4 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -83,6 +83,7 @@ WorldPacket GameObjectTemplate::BuildQueryData(LocaleConstant loc) const queryTemp.Stats.QuestItems[i] = (*items)[i]; queryTemp.Write(); + queryTemp.ShrinkToFit(); return queryTemp.Move(); } diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp index 318df777859..1f35fa341f4 100644 --- a/src/server/game/Entities/Item/ItemTemplate.cpp +++ b/src/server/game/Entities/Item/ItemTemplate.cpp @@ -267,5 +267,6 @@ WorldPacket ItemTemplate::BuildQueryData(LocaleConstant loc) const response.Stats.HolidayId = HolidayId; response.Write(); + response.ShrinkToFit(); return response.Move(); } diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 590561dbbe5..26420ccbb17 100644 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -429,6 +429,7 @@ WorldPacket Quest::BuildQueryData(LocaleConstant loc) const response.Info.ObjectiveText[i] = locQuestObjectiveText[i]; response.Write(); + response.ShrinkToFit(); return response.Move(); } diff --git a/src/server/game/Server/Packet.h b/src/server/game/Server/Packet.h index 2f863cb1994..e1b73ded09a 100644 --- a/src/server/game/Server/Packet.h +++ b/src/server/game/Server/Packet.h @@ -51,6 +51,7 @@ namespace WorldPackets void Clear() { _worldPacket.clear(); } WorldPacket&& Move() { return std::move(_worldPacket); } + void ShrinkToFit() { _worldPacket.shrink_to_fit(); } OpcodeServer GetOpcode() const { return OpcodeServer(_worldPacket.GetOpcode()); } }; |
