diff --git a/src/private/unpack_p.cpp b/src/private/unpack_p.cpp index 067309d..d8370d4 100644 --- a/src/private/unpack_p.cpp +++ b/src/private/unpack_p.cpp @@ -130,14 +130,14 @@ quint8 * MsgPackPrivate::unpack_negative_fixint(QVariant &v, quint8 *p) quint8 * MsgPackPrivate::unpack_uint8(QVariant &v, quint8 *p) { - v = static_cast(*(++p)); + v = static_cast(*(++p)); return p + 1; } quint8 * MsgPackPrivate::unpack_uint16(QVariant &v, quint8 *p) { p++; - v = _msgpack_load16(quint16, p); + v = static_cast(_msgpack_load16(quint16, p)); return p + 2; } diff --git a/tests/mixed/mixed_test.cpp b/tests/mixed/mixed_test.cpp index 651bfd5..df966bb 100644 --- a/tests/mixed/mixed_test.cpp +++ b/tests/mixed/mixed_test.cpp @@ -10,6 +10,7 @@ class MixedTest : public QObject Q_OBJECT private Q_SLOTS: + void test_uint(); void test_float(); void test_double(); void test_map(); @@ -17,6 +18,19 @@ private Q_SLOTS: void test_mixed(); }; +void MixedTest::test_uint() +{ + for (int i = 0; i <= 32; ++i) { + const quint32 u = (0x1UL<