mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
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()
This commit is contained in:
@@ -216,6 +216,7 @@ WorldPacket CreatureTemplate::BuildQueryData(LocaleConstant loc) const
|
||||
|
||||
queryTemp.Stats.CreatureMovementInfoID = movementId;
|
||||
queryTemp.Write();
|
||||
queryTemp.ShrinkToFit();
|
||||
return queryTemp.Move();
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ WorldPacket GameObjectTemplate::BuildQueryData(LocaleConstant loc) const
|
||||
queryTemp.Stats.QuestItems[i] = (*items)[i];
|
||||
|
||||
queryTemp.Write();
|
||||
queryTemp.ShrinkToFit();
|
||||
return queryTemp.Move();
|
||||
}
|
||||
|
||||
|
||||
@@ -267,5 +267,6 @@ WorldPacket ItemTemplate::BuildQueryData(LocaleConstant loc) const
|
||||
response.Stats.HolidayId = HolidayId;
|
||||
|
||||
response.Write();
|
||||
response.ShrinkToFit();
|
||||
return response.Move();
|
||||
}
|
||||
|
||||
@@ -429,6 +429,7 @@ WorldPacket Quest::BuildQueryData(LocaleConstant loc) const
|
||||
response.Info.ObjectiveText[i] = locQuestObjectiveText[i];
|
||||
|
||||
response.Write();
|
||||
response.ShrinkToFit();
|
||||
return response.Move();
|
||||
}
|
||||
|
||||
|
||||
@@ -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()); }
|
||||
};
|
||||
|
||||
@@ -413,6 +413,11 @@ class TC_SHARED_API ByteBuffer
|
||||
_storage.reserve(ressize);
|
||||
}
|
||||
|
||||
void shrink_to_fit()
|
||||
{
|
||||
_storage.shrink_to_fit();
|
||||
}
|
||||
|
||||
void append(const char *src, size_t cnt)
|
||||
{
|
||||
return append((const uint8 *)src, cnt);
|
||||
|
||||
Reference in New Issue
Block a user