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) quint8 *MsgPackPrivate::pack_longlong(qint64 i, quint8 *p, bool wr)
{ {
if (i >= std::numeric_limits<qint32>::min() if (i >= 0 && i <= std::numeric_limits<quint32>::max())
&& i <= std::numeric_limits<quint32>::max()) return pack_uint(i, p, wr);
return p = pack_int(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; if (wr) *p = 0xd3;
p++; p++;
if (wr) _msgpack_store64(p, i); if (wr) _msgpack_store64(p, i);