aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2018-08-22 19:44:21 +0200
committerShauren <shauren.trinity@gmail.com>2021-10-22 23:15:27 +0200
commitb6f28a7ebc2684d7514211201a344a6e510b7be5 (patch)
tree8bde8a06a6e4c9f346580f1f3a910ec4c71bb460 /src/server/game
parent8c17cdf095c9891c034cec71f86ccb9c3c2dba2b (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() (cherry picked from commit deabd4ab453ee8cf1f515bdb32bf9cf9de7f0591)
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/Globals/ObjectMgr.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 2ca94a09e97..4139aa517bb 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -244,6 +244,7 @@ WorldPacket CreatureTemplate::BuildQueryData(LocaleConstant loc) const
}
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 01c817a6d60..c81612003ea 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -89,6 +89,7 @@ WorldPacket GameObjectTemplate::BuildQueryData(LocaleConstant loc) const
stats.ContentTuningId = ContentTuningId;
queryTemp.Write();
+ queryTemp.ShrinkToFit();
return queryTemp.Move();
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index b1bf17ec7d7..abb24cab237 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -10492,6 +10492,7 @@ void ObjectMgr::InitializeQueriesData(QueryDataGroup mask)
void QuestPOIData::InitializeQueryData()
{
QueryDataBuffer << *this;
+ QueryDataBuffer.shrink_to_fit();
}
void ObjectMgr::LoadSceneTemplates()
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index b1df0ef8284..633d79134b4 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -594,6 +594,7 @@ WorldPacket Quest::BuildQueryData(LocaleConstant loc) const
response.Info.TimeAllowed = GetLimitTime();
response.Write();
+ response.ShrinkToFit();
return response.Move();
}
diff --git a/src/server/game/Server/Packet.h b/src/server/game/Server/Packet.h
index 986c46b805a..17add8a7e42 100644
--- a/src/server/game/Server/Packet.h
+++ b/src/server/game/Server/Packet.h
@@ -52,6 +52,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()); }
};