Fix 64bit integers pack, issue #20.

This commit is contained in:
Roman Isaikin
2016-04-26 22:26:46 +03:00
parent 46f6184f22
commit 7cbc3c3138

View File

@@ -123,9 +123,11 @@ quint8 *MsgPackPrivate::pack_uint(quint32 i, quint8 *p, bool wr)
quint8 *MsgPackPrivate::pack_longlong(qint64 i, quint8 *p, bool wr)
{
if (i >= std::numeric_limits<qint32>::min()
&& i <= std::numeric_limits<quint32>::max())
return p = pack_int(i, p, wr);
if (i >= 0 && i <= std::numeric_limits<quint32>::max())
return pack_uint(i, p, wr);
else if (i >= std::numeric_limits<qint32>::min()
&& i <= std::numeric_limits<qint32>::max())
return pack_int(i, p, wr);
if (wr) *p = 0xd3;
p++;
if (wr) _msgpack_store64(p, i);