cpp: fixes serialization of object::type == DOUBLE

This commit is contained in:
frsyuki
2010-04-25 02:37:04 +09:00
parent 7d945d3c8e
commit 9bfa2354ff

View File

@@ -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 <typename T>
@@ -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);