diff options
| author | frsyuki <frsyuki@users.sourceforge.jp> | 2010-04-25 02:37:04 +0900 |
|---|---|---|
| committer | frsyuki <frsyuki@users.sourceforge.jp> | 2010-04-25 02:37:04 +0900 |
| commit | 9bfa2354ff9e667436fc4e6ced2274a5c0e55aab (patch) | |
| tree | 397ee4a53d7b0e5dd3e2f81a47d120454aa69f8d | |
| parent | 7d945d3c8e24de21ba5862d699521502bce17fe5 (diff) | |
| download | msgpack-python-9bfa2354ff9e667436fc4e6ced2274a5c0e55aab.tar.gz | |
cpp: fixes serialization of object::type == DOUBLE
| -rw-r--r-- | cpp/msgpack/object.hpp | 16 |
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); |
