From 7cbc3c3138926d2dad81c96d46b74a601e03e552 Mon Sep 17 00:00:00 2001 From: Roman Isaikin Date: Tue, 26 Apr 2016 22:26:46 +0300 Subject: [PATCH] Fix 64bit integers pack, issue #20. --- src/private/pack_p.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/private/pack_p.cpp b/src/private/pack_p.cpp index e807bf6..2c2d6ec 100644 --- a/src/private/pack_p.cpp +++ b/src/private/pack_p.cpp @@ -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::min() - && i <= std::numeric_limits::max()) - return p = pack_int(i, p, wr); + if (i >= 0 && i <= std::numeric_limits::max()) + return pack_uint(i, p, wr); + else if (i >= std::numeric_limits::min() + && i <= std::numeric_limits::max()) + return pack_int(i, p, wr); if (wr) *p = 0xd3; p++; if (wr) _msgpack_store64(p, i);