summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetatype_p.h
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@nokia.com>2012-01-24 16:06:27 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-08 09:53:23 +0100
commit0da03ac969e382a604f8c178820f1e8b9053d97f (patch)
tree4521408a53a5ef8569a2cb0fdadba2bbd5b3d3ef /src/corelib/kernel/qmetatype_p.h
parent8e91e84e857166facf599870ad773e36e518c48a (diff)
Code cleanup and micro optimizations in QMetaType.
Change-Id: I0fbd713fcdf094f9d13acee855b6dd6986695e0d Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Diffstat (limited to 'src/corelib/kernel/qmetatype_p.h')
-rw-r--r--src/corelib/kernel/qmetatype_p.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h
index c292f11764..b1edc350a1 100644
--- a/src/corelib/kernel/qmetatype_p.h
+++ b/src/corelib/kernel/qmetatype_p.h
@@ -161,6 +161,18 @@ public:
quint32 flags; // same as QMetaType::TypeFlags
};
+template<>
+struct QMetaTypeInterface::Impl<void> {
+ static void *creator(const void *) { return 0; }
+ static void deleter(void *) {}
+#ifndef QT_NO_DATASTREAM
+ static void saver(QDataStream &, const void *) {}
+ static void loader(QDataStream &, void *) {}
+#endif // QT_NO_DATASTREAM
+ static void destructor(void *){}
+ static void *constructor(void *, const void *) { return 0; }
+};
+
#ifndef QT_NO_DATASTREAM
# define QT_METATYPE_INTERFACE_INIT_DATASTREAM_IMPL(Type) \
/*saveOp*/(reinterpret_cast<QMetaType::SaveOperator>(QMetaTypeInterface::Impl<Type>::saver)), \
@@ -176,7 +188,7 @@ public:
QT_METATYPE_INTERFACE_INIT_DATASTREAM_IMPL(Type) \
/*constructor*/(reinterpret_cast<QMetaType::Constructor>(QMetaTypeInterface::Impl<Type>::constructor)), \
/*destructor*/(reinterpret_cast<QMetaType::Destructor>(QMetaTypeInterface::Impl<Type>::destructor)), \
- /*size*/(sizeof(Type)), \
+ /*size*/(QTypeInfo<Type>::sizeOf), \
/*flags*/(!QTypeInfo<Type>::isStatic * QMetaType::MovableType) \
| (QTypeInfo<Type>::isComplex * QMetaType::NeedsConstruction) \
| (QTypeInfo<Type>::isComplex * QMetaType::NeedsDestruction) \