diff --git a/src/private/pack_p.cpp b/src/private/pack_p.cpp index 9419567..d751bde 100644 --- a/src/private/pack_p.cpp +++ b/src/private/pack_p.cpp @@ -20,7 +20,11 @@ QReadWriteLock MsgPackPrivate::packers_lock; quint8 *MsgPackPrivate::pack(const QVariant &v, quint8 *p, bool wr, QVector &user_data) { QMetaType::Type t = (QMetaType::Type)v.type(); - if ((v.isNull() && !v.isValid()) || t == 51) // QMetaType::Nullptr +#if QT_VERSION > QT_VERSION_CHECK(5, 8, 0) + if ((v.isNull() && !v.isValid()) || t == QMetaType::Nullptr) +#else + if (v.isNull() && !v.isValid()) +#endif p = pack_nil(p, wr); else if (t == QMetaType::Int) p = pack_int(v.toInt(), p, wr); diff --git a/tests/pack/pack_test.cpp b/tests/pack/pack_test.cpp index e25e3f7..263389f 100644 --- a/tests/pack/pack_test.cpp +++ b/tests/pack/pack_test.cpp @@ -27,12 +27,19 @@ private Q_SLOTS: void PackTest::test_nil() { QVariant v; - v.setValue(nullptr); - QVERIFY((QMetaType::Type)v.type() == 51); // QMetaType::Nullptr QByteArray arr = MsgPack::pack(v); quint8 *p = (quint8 *)arr.data(); QVERIFY(arr.size() == 1); QVERIFY(p[0] == 0xc0); + +#if QT_VERSION > QT_VERSION_CHECK(5, 8, 0) + v.setValue(nullptr); + QVERIFY((QMetaType::Type)v.type() == QMetaType::Nullptr); + arr = MsgPack::pack(v); + p = (quint8 *)arr.data(); + QVERIFY(arr.size() == 1); + QVERIFY(p[0] == 0xc0); +#endif } void PackTest::test_bool()