diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2010-03-03 10:02:11 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2010-03-03 10:48:16 (GMT) |
commit | 24cf789b68f21b2d1ea31580e55c91a2cae25a12 (patch) | |
tree | 67717ff96c11a5bbb22e19265fc4688ef63a7dee /src/corelib/kernel/qvariant.h | |
parent | a4af046157c7ef94990f9520c4611597ff271c57 (diff) | |
download | Qt-24cf789b68f21b2d1ea31580e55c91a2cae25a12.zip Qt-24cf789b68f21b2d1ea31580e55c91a2cae25a12.tar.gz Qt-24cf789b68f21b2d1ea31580e55c91a2cae25a12.tar.bz2 |
Fix compilation of Q_DECLARE_METATYPE(QVariant) by introducing QMetaType::QVariant
After 03daf059647c0a0222e8774b0a083f58c8e64934
With the recent change in QMetaType, qRegisterMetaType<T> instantiates
QMetaTypeId2<T>, which itself instantiates QMetaTypeId<T> if T is not
builtin into QMetaType.
But qRegisterMetaType<QVariant> is called in qvariant.h which makes
further call to Q_DECLARE_METATYPE(QVariant) to fail as
QMetaTypeId<QVariant> would have been instantied before
The solution is to make QVariant a builtin type.
Reviewed-by: Thierry
Diffstat (limited to 'src/corelib/kernel/qvariant.h')
-rw-r--r-- | src/corelib/kernel/qvariant.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index 9628dbf..cb2825c 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -589,8 +589,7 @@ template<typename T> inline T qvariant_cast(const QVariant &v) template<> inline QVariant qvariant_cast<QVariant>(const QVariant &v) { - static const int vid = qRegisterMetaType<QVariant>("QVariant"); - if (vid == v.userType()) + if (v.userType() == QMetaType::QVariant) return *reinterpret_cast<const QVariant *>(v.constData()); return v; } |