From 9bfa2354ff9e667436fc4e6ced2274a5c0e55aab Mon Sep 17 00:00:00 2001 From: frsyuki Date: Sun, 25 Apr 2010 02:37:04 +0900 Subject: [PATCH] cpp: fixes serialization of object::type == DOUBLE --- cpp/msgpack/object.hpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cpp/msgpack/object.hpp b/cpp/msgpack/object.hpp index 3567ac8b..37c19263 100644 --- a/cpp/msgpack/object.hpp +++ b/cpp/msgpack/object.hpp @@ -306,6 +306,12 @@ inline object::object(msgpack_object o) ::memcpy(this, &o, sizeof(o)); } +inline void operator<< (object& o, msgpack_object v) +{ + // FIXME beter way? + ::memcpy(&o, &v, sizeof(v)); +} + inline object::operator msgpack_object() { // FIXME beter way? @@ -314,12 +320,6 @@ inline object::operator msgpack_object() return obj; } -inline void operator<< (object& o, msgpack_object v) -{ - // FIXME beter way? - ::memcpy(&o, &v, sizeof(v)); -} - // obsolete template @@ -391,6 +391,10 @@ packer& operator<< (packer& o, const object& v) } return o; + case type::DOUBLE: + o.pack_double(v.via.dec); + return o; + case type::RAW: o.pack_raw(v.via.raw.size); o.pack_raw_body(v.via.raw.ptr, v.via.raw.size);