Go to file
Marc Mutz 98b77f9faa QMetaType: remember whether a type was registered with Q_DECLARE_METATYPE
There are two ways to register a type: using Q_DECLARE_METATYPE(T) and
using qRegisterMetaType<T>("T"). Doing one thing in one translation
unit and another thing in another TU constitutes an ODR violation,
because the value of QMetaTypeId<T>::Defined will differ in the two
TUs.

By adding the information whether a type was declared with
Q_DECLARE_METATYPE to the typeFlags(), such a use will trigger
the existing binary-incompatibility failure that checks for
equality of the incoming type flags with the stored ones (if any).

I had to encode the type as a defaulted function argument in order
to avoid the linker merging instantiations of the function templates
and therefore rendering the detection moot.

Change-Id: I82017caf300458b411cc8ac2f6653536fac64117
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-12-11 11:12:08 +01:00
bin don't check modules which were not requested 2012-12-05 17:29:46 +01:00
config.tests Add configure option to minimize xcb runtime dependencies 2012-11-07 16:55:50 +01:00
dist Remove references to pre-build examples from dist/README 2012-12-06 14:46:13 +01:00
doc Doc: Restored CSS images for the offline HTML and QCH build 2012-12-10 23:10:43 +01:00
examples Hardcoded url to RFC3174 QTBUG-28500 2012-12-11 10:45:39 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Add QT_DEFAULT_QPA_PLUGIN to generated qconfig.pri 2012-12-10 15:33:54 +01:00
qmake support include paths for the Windows resource compiler 2012-12-10 10:17:25 +01:00
src QMetaType: remember whether a type was registered with Q_DECLARE_METATYPE 2012-12-11 11:12:08 +01:00
tests QMetaType: remember whether a type was registered with Q_DECLARE_METATYPE 2012-12-11 11:12:08 +01:00
tools Add QT_DEFAULT_QPA_PLUGIN to generated qconfig.pri 2012-12-10 15:33:54 +01:00
util More changes from Nokia to Digia 2012-11-30 00:50:47 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Fix docs for Drag and Drop examples 2012-11-30 18:37:35 +01:00
.qmake.conf don't auto-install example sources by default for all modules 2012-12-03 15:56:28 +01:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure Add QT_DEFAULT_QPA_PLUGIN to generated qconfig.pri 2012-12-10 15:33:54 +01:00
configure.bat Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
header.BSD Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
header.FDL Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
header.LGPL Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
header.LGPL-ONLY Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
INSTALL fix links in INSTALL 2012-10-10 08:45:22 +02:00
LGPL_EXCEPTION.txt Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL Add the LICENSE.GPL file to the module referenced from license headers 2012-05-20 22:41:08 +02:00
LICENSE.LGPL Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
LICENSE.PREVIEW.COMMERCIAL Change copyrights from Nokia to Digia 2012-09-22 19:20:11 +02:00
qtbase.pro rewrite default spec handling 2012-11-01 20:17:57 +01:00
sync.profile properly syncqt-ize harfbuzz headers 2012-12-04 13:57:55 +01:00