From 9bfa2354ff9e667436fc4e6ced2274a5c0e55aab Mon Sep 17 00:00:00 2001 From: frsyuki Date: Sun, 25 Apr 2010 02:37:04 +0900 Subject: 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 3567ac8..37c1926 100644 --- a/cpp/msgpack/object.hpp +++ b/cpp/msgpack/object.hpp @@ -306,18 +306,18 @@ inline object::object(msgpack_object o) ::memcpy(this, &o, sizeof(o)); } -inline object::operator msgpack_object() +inline void operator<< (object& o, msgpack_object v) { // FIXME beter way? - msgpack_object obj; - ::memcpy(&obj, this, sizeof(obj)); - return obj; + ::memcpy(&o, &v, sizeof(v)); } -inline void operator<< (object& o, msgpack_object v) +inline object::operator msgpack_object() { // FIXME beter way? - ::memcpy(&o, &v, sizeof(v)); + msgpack_object obj; + ::memcpy(&obj, this, sizeof(obj)); + return obj; } @@ -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); -- cgit v1.2.1