From 6558733d3452cd71d02bad5b8e105d4d3bfa7d51 Mon Sep 17 00:00:00 2001 From: Rogiel Sulzbach Date: Wed, 12 Sep 2018 14:56:03 -0300 Subject: [PATCH] Fix a bug that caused serialized dates to not be cross platform --- include/PacketBuffer/Serializer/Std/Chrono.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/include/PacketBuffer/Serializer/Std/Chrono.h b/include/PacketBuffer/Serializer/Std/Chrono.h index d8ec839..aa21ef6 100644 --- a/include/PacketBuffer/Serializer/Std/Chrono.h +++ b/include/PacketBuffer/Serializer/Std/Chrono.h @@ -71,14 +71,17 @@ namespace PacketBuffer { public: template static inline void pack(Packer& packer, const std::chrono::time_point& point) { - packer(point.time_since_epoch()); + auto duration = std::chrono::duration_cast( + point.time_since_epoch()); + packer(duration); } template static inline void unpack(Unpacker& unpacker, std::chrono::time_point& point) { - Duration d; - unpacker(d); - point = std::chrono::time_point(d); + std::chrono::milliseconds duration; + unpacker(duration); + point = std::chrono::time_point( + std::chrono::duration_cast(duration)); } };