From 50ceb9c719b0182e4a87001eac722bd7e2d162ad Mon Sep 17 00:00:00 2001 From: Brian Johnson Date: Mon, 16 Apr 2018 09:10:06 -0500 Subject: [PATCH] Fixed fc::array pack/unpack to work for fundemental and non-fundemental types. GH #2350 --- libraries/fc/include/fc/io/raw.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/fc/include/fc/io/raw.hpp b/libraries/fc/include/fc/io/raw.hpp index 819efb17450..2da327fda9b 100644 --- a/libraries/fc/include/fc/io/raw.hpp +++ b/libraries/fc/include/fc/io/raw.hpp @@ -142,7 +142,8 @@ namespace fc { template inline void pack( Stream& s, const fc::array& v) { - s.write((const char*)&v.data[0],N*sizeof(T)); + for (uint64_t i = 0; i < N; ++i) + fc::raw::pack(s, v.data[i]); } template @@ -154,7 +155,8 @@ namespace fc { template inline void unpack( Stream& s, fc::array& v) { try { - s.read((char*)&v.data[0],N*sizeof(T)); + for (uint64_t i = 0; i < N; ++i) + fc::raw::unpack(s, v.data[i]); } FC_RETHROW_EXCEPTIONS( warn, "fc::array", ("type",fc::get_typename::name())("length",N) ) } template