aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2018-08-22 19:44:21 +0200
committerGitHub <noreply@github.com>2018-08-22 19:44:21 +0200
commitdeabd4ab453ee8cf1f515bdb32bf9cf9de7f0591 (patch)
tree9f4eeabcf366a6a41a748151fd265208d6261721 /src/server/game
parent6e8070ae3388bb48a7a1e97f64ae3f44558319e6 (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.cpp1
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp1
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.cpp1
-rw-r--r--src/server/game/Quests/QuestDef.cpp1
-rw-r--r--src/server/game/Server/Packet.h1
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()); }
};