summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-04-25 02:37:04 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-04-25 02:37:04 +0900
commit9bfa2354ff9e667436fc4e6ced2274a5c0e55aab (patch)
tree397ee4a53d7b0e5dd3e2f81a47d120454aa69f8d
parent7d945d3c8e24de21ba5862d699521502bce17fe5 (diff)
downloadmsgpack-python-9bfa2354ff9e667436fc4e6ced2274a5c0e55aab.tar.gz
cpp: fixes serialization of object::type == DOUBLE
-rw-r--r--cpp/msgpack/object.hpp16
1 files 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<Stream>& operator<< (packer<Stream>& 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);