QtDBus: use qMetaTypeId<T>() instead of qRegisterMetaType<T>("T")
authorMarc Mutz <marc.mutz@kdab.com>
Fri, 20 Jul 2012 08:34:27 +0000 (10:34 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 24 Jul 2012 18:11:05 +0000 (20:11 +0200)
commite9ecf1b420d8f0fc4393cbfdea2fe731409d83c6
treed9a13f2e48954c6dac35f6b43d3fabc6ebbc831f
parent95232af3effab1f722c31e136c59fdd4ae3967b1
QtDBus: use qMetaTypeId<T>() instead of qRegisterMetaType<T>("T")

Using qMetaTypeId<T> has the advantage that multiple calls during
a program run are much more efficient, since an inlined atomic
is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>
(the unary version) will happily register anything.

Had to add a proper default constructor to QDBusError, as the
one doubling as the default constructor wasn't available under
QT_BOOTSTRAP, but Q_DECLARE_METATYPE requires a default ctor.

Also changed a nullary qRegisterMetaType() to qMetaTypeId() in
qDBusRegisterMetaType(). They're equivalent, since the former
just calls the latter, but apart from the miniscule optimisation
that the compiler has to instantiate one function less, the result
is also used, so using qMetaTypeId() better expresses what 'id'
is.

Change-Id: Ib9dde17923ab9ee55f9464138a625ab8cd55c482
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
src/dbus/qdbuserror.cpp
src/dbus/qdbuserror.h
src/dbus/qdbusmessage.h
src/dbus/qdbusmetatype.cpp
src/dbus/qdbusmetatype.h