summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Add QFileInfo::isNativePathJoão Abecasis2012-02-142-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | This function returns true if the file path can be used directly with native APIs, modulo encoding and path separator conversions. This is important for applications that interface with other libraries or simply need to use native APIs together with Qt. Traditionally, this information was available in QAbstractFileEngine and forced users to explicitly create an engine or use internal API such as QFile::fileEngine to access the underlying engine and this piece of information. Given its usefulness, exposing the information in a more visible place is more appropriate. This reduces the need for people to know or care about implementation details, like file engines... The existing isLocalFs test was updated and repurposed to use the new API, instead of relying on file engines and internal implementation details of QFileInfo. Change-Id: I65f497bb25741f6f7ea4d2c3b3562c8c4aab8bea Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Cleanup HEADERS+=... in src/corelib/arch/arch.priBradley T. Hughes2012-02-131-23/+18
| | | | | | | | | Include all qatomic_*.h files in HEADERS, since we don't know which include the compiler will end up choosing in the end (operating system specific includes are still conditionally included, though). Change-Id: I4241e40ad51d34dede04be0c4ee95378d6f3d037 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add src/corelib/arch/qatomic_unix.h and qatomic_unix.cppBradley T. Hughes2012-02-134-0/+209
| | | | | | | | | | | | This provides a fallback implementation on UNIX when the Q_PROCESSOR_* and Q_CC_*/Q_COMPILER_* checks fail to find an implementation. Note that we always compile qatomic_unix.cpp, but code is only included when QATOMIC_UNIX_H is defined (meaning the checks above did not find an implementation). Change-Id: I8ce047847206003b4fa96eb3fb76b1c2ffbc2dfc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove qatomic_arch.hBradley T. Hughes2012-02-1312-83/+47
| | | | | | | | | | | | Make qbasicatomic.h include the OS/compiler/processor dependent implementation. For implementations that have not yet been ported to declare a QAtomicOps, they need to #include <QtCore/qoldbasicatomic.h>, and the new QBasicAtomicInteger and QBasicAtomicPointer should not be declared. Change-Id: Ia951834484c9f8dfa75131592e5e716b68ff989b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove Windows specific code from qoldbasicatomic.hBradley T. Hughes2012-02-131-23/+1
| | | | | | | This header is not used on Windows anymore, so remove the dead #ifdefs. Change-Id: I76cfbd13c9fff0eab87cc69e8ca1e0d5ccab9e3a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the generic atomic implementationBradley T. Hughes2012-02-136-546/+2
| | | | | | | | | This implementation is not used on Windows, and needs to be updated on UNIX for processors that we do not support (this will be done in a separate commit). Change-Id: I471d0ed00f4e8b89ecfa400796a2dbe2330935c6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reshuffle code between qglobal, qloggingKai Koehne2012-02-134-477/+473
| | | | | | | Make the content of the .h, .cpp files match. Change-Id: Ib2506aeff74281ec4bcbf04d21da451038391203 Reviewed-by: David Faure <faure@kde.org>
* Fix qmake compilationOlivier Goffart2012-02-131-1/+1
| | | | | | | No need to error out in bootstrapped mode because we don't use -fPIC Change-Id: I0cc2889c75b41968edfd8e801b9161a1eb63f6ef Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove HP PA-RISC atomic implementation.Bradley T. Hughes2012-02-139-490/+1
| | | | | | | | | | | This architecture is obsolete and discontinued. Support for PA-RISC can be re-added if needed, but it would be preferred to use the GCC intrinsic support from qatomic_gcc.h (on Linux/HPPA, for example). Change-Id: I952e521a2c8c68840df0d44843b5487d5c20b135 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the SH atomic implementation...Bradley T. Hughes2012-02-135-409/+0
| | | | | | | | | | | | ... but keep SH-4a, which provides a more efficient implementation. The implementation removed here was very similar to the code removed by commit dc5388e79b71d796c1207681235cf007c39810bd. Support for SH can be provided by qatomic_gcc.h, or re-added in the future if absolutely necessary. Change-Id: Ic38b57c9513fc9c3c99ba7e102780a3939b735b9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove out-of-line atomic implementation for PowerPCBradley T. Hughes2012-02-136-1622/+1
| | | | | | | | | | | | | | | | Only support inline assembler with GCC. Support for xlC or other compilers is not provided or tested. The files in src/corelib/arch/vxworks only supported out-of-line PowerPC, so remove it as well. The xlC compiler seems to support GNU-style inline assembly, which we prefer. Anyone wishing to support that compiler again should first test if the inline assembly (the prefered method) works. See http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/topic/com.ibm.xlcpp8l.doc/language/ref/asm.htm#asm Change-Id: I70e56c0b06428bfb6538ca5e101baebd870f92f5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove out-of-line atomic implementation for AlphaBradley T. Hughes2012-02-133-367/+2
| | | | | | | | | This implementation has not been tested or supported at all during the Qt 4.x lifetime. Do not bring it with us into Qt 5.x. Only inline assembler with GCC is supported. Change-Id: I31b48721bb7f4c96f4a777da604d80cc63c6fd79 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use toDisplayString when debugging urls (no passwords in logs)David Faure2012-02-121-1/+1
| | | | | | | Change-Id: I618027c5913438bf341864d07d4831f9e33633b6 Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove failing for ARM Architectures.Andreas Holzammer2012-02-111-2/+0
| | | | | | | | Checks cover only V7, V6 and V5. But when trying to compile for V4 it fails. Change-Id: I573361c61acc904661bf2c8bfe1132cba57f296a Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Add QUrl::toDisplayString(), which is toString() without password.David Faure2012-02-112-6/+22
| | | | | | | | | | | And fix documentation of toString() which said this was the method to use for displaying to humans, while this has never been true. Change-Id: Iff6df92e32b2517e1481d4992d80cae2d58da427 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Fixed zlib build for WEC7.Andreas Holzammer2012-02-111-0/+10
| | | | | | | | | | | | | | | errno in zutil.c is leftover, and not used anymore -> removed. In gzguts.h qfunctions_wince.h are included. To use this header qglobal.h is needed. In qfunctions_wince.h a special define section is added for zlib. Task-number: QTBUG-22507 Change-Id: I78ec78d22e2930a03b349a47ab3a3ad077277c42 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Raise loopLevel for deleteLater in event filtersJohn Stanley2012-02-111-1/+5
| | | | | Change-Id: Ibd0cd2a2efbcb13a54fe8ba055e7243c0c01b26e Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Fixed alignment check in QJsonDocument::fromRawDataDenis Dzyubenko2012-02-101-2/+2
| | | | | Change-Id: I1d107e26a77e40f91ff09d43e9529b08da8f7c3b Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add -fPIE to the Qt5Core_COMPILE_FLAGS with reduce-relocations.Stephen Kelly2012-02-101-0/+4
| | | | | | | | | | Qt requires this since 482d96a0c5d523ace63f56bda6851926b4469dd0 Change-Id: Iba783e283b17654abf46f11b81cc1641c3ce7d83 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Display QThread name for debugging.Leonard Lee2012-02-101-0/+18
| | | | | | | | Thanks to João's help. Change-Id: I9ad3035f016945bed9fdf425fc7b7edd5d20822d Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make it possible to put QObject tracked with QWeakPointer inside QSharedPointerOlivier Goffart2012-02-102-17/+19
| | | | | | | | | | | | | | | | Do that by keeping the QWeakPointer that track QObject independent of the ones that track QSharedPointer. QSharedPointer do not touch the sharedRefCount in QObjectPrivate anymore When converting a QWeakPointer constructed from a QObject to a QSharedPointer, it will display a warning saying one should not do that. Task-number: QTBUG-22622 Change-Id: I3595e3e7401702410776c458687ab357ad9366ab Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix qlogging autotest for clangKai Koehne2012-02-101-0/+5
| | | | | | Change-Id: Iac82c4847554534174b5419ec78319c9ac381628 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Force -fPIE on ELF if Qt is built with reduced relocationsOlivier Goffart2012-02-101-0/+6
| | | | | | | | | | | | | | | | Put in qconfig.h whether qt is compiled with reduced relocations. When using -Bsymbolic-functions (enabled by default on Qt) but not -fPIE, the comparison of the function pointers fail because the addresses are different in Qt, and in the executable. Hence we now enable -fPIE by default on qmake, and force a compilation error when it is not enabled and built with reduced relocations. Done-with: Sune Vuorela <sune@vuorela.dk> Change-Id: Ib3fdba06fab6e8a93b75b4c6cf16cc973ab335db Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Allow customization of qDebug output at runtimeKai Koehne2012-02-093-21/+337
| | | | | | | | | | | | | Check the QT_OUTPUT_PATTERN environment variable in the default message handler to customize the output of messages. Following place holders are right now supported: %{message}, %{type}, %{file}, %{line}, %{function} The original cleanupFuncinfo was written by Thiago Macieira. Change-Id: I6ad25baaa0e6a1c9f886105d2a93ef3310e512a9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: David Faure <faure@kde.org>
* Initializes seqDumpPos on qiodevice.cppNick Ratelle2012-02-091-1/+2
| | | | | | | | | | | | | This was spotted by RIM static code checking team. seqDumpPos is a dummy variable which is only used on sequential mode. It is used as a simultaneous storage area of both pPos and pDevicePos when in sequential mode, to keep both in sync. They just suggested that it would be a good practice to initialize the variable, since it does not have any side effect, and there's not much value on not doing it. Change-Id: I8138729eb31df5779c91b368c2cfaecd39788f29 Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
* Add event type for TouchCancel.Laszlo Agocs2012-02-092-0/+3
| | | | | | Change-Id: Id8b68e5cb19a2a325139e3241647cc36581cf6f8 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Various documentation fixes ported from 4.8Teemu Katajisto2012-02-097-7/+30
| | | | | | | | | | | | | | | | | | | Selected documentation fixes for qtbase from 4.8 commit 40fb4750910e23d3e7128ca8e0f1c5920b05bd5a Task-number: QTBUG-8625 Task-number: QTBUG-19808 Task-number: QTBUG-1231 Task-number: QTBUG-21073 Task-number: QTBUG-8939 Task-number: QTBUG-20399 Task-number: QTBUG-20944 Task-number: QTBUG-22095 Task-number: QTBUG-11278 Task-number: QTBUG-15653 Change-Id: Ia4f59fce7c85f04b6da953a3988f705d9d9a658a Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Avoid advancing animations outside the animation "tick"Gunnar Sletta2012-02-093-2/+9
| | | | | | | | | | | | | | | We have logic to prevent animations from starting in the middle of an animation as a result of a previously slow frame. This was based on current time, not the animation driver time and would cause severe jumping when custom animation drivers were being used. Also, this logic would trigger multiple animation runs per frame, which is very bad for performance, so this change introduces a threshold of 50ms to compensate for that. 50ms because that is triplebuffer limit. Change-Id: I1c7ebac30060e849d03c14d62411c2b953854d98 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Introduce Q_DECLARE_OPAQUE_POINTERJoão Abecasis2012-02-092-0/+30
| | | | | | | | | | | | To hide the IsPointerToTypeDerivedFromQObject monstruosity :-) Documentation for Q_DECLARE_METATYPE and qRegisterMetaType was updated to mention requirements on registered types and how they can be circumvented for pointer types with the new macro. Change-Id: If83b037a8e2f28761eb903525e87008107298801 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Build with QT_NO_CAST_FROM_BYTEARRAYStephen Kelly2012-02-081-1/+1
| | | | | | Change-Id: I9069b61c6247bdff323e2e5e93b70e42c3504201 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com> Reviewed-by: David Faure <faure@kde.org>
* realpath(X,0) IS supported on QNX.Nick Ratelle2012-02-081-1/+1
| | | | | | | | | Adds check for Q_OS_QNX to force QFileSystemEntry QFileSystemEngine::canonicalName() use realpath(X, 0) on QNX as well. Change-Id: Id0a32277e6d043753c42101c91a393ebedb48a0a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Treat pointers to QObject derived types in QVariant specially.Stephen Kelly2012-02-081-10/+62
| | | | | | | | | | | | | | | | It is possible to do this for example: QVariant v = QVariant::fromValue<MyCustomQObject*>(); QObject *object = v.value<QObject*>(); This means that if a QVariant contains a pointer to a QObject derived type, third parties can extract a QObject* and use its properties without knowing the concrete type. This is a source compatible change. Change-Id: Iee9a9437e99cc2f40d1a4bfea47275482ef7161f Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Mac: Fix compilation with -qtnamespaceKai Koehne2012-02-081-0/+4
| | | | | Change-Id: I85559b6698103eef865464a355d9b00012dcbd5f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* fix msvc 2008 warning about downcasting to boolOswald Buddenhagen2012-02-081-1/+1
| | | | | | | | | | | | the compiler doesn't have static_assert yet, so we ran into the path which was not fixed by 10229ae. use !!() pattern instead of bool() cast, as the latter throws off macx (see 95d7abb). the other alternative - a c-style cast - would cause autotest failures (see 92464fa), and would be ugly anyway. Change-Id: Idbe9a3b60e17ae1f566f938d9b9be04f0c977492 Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Fix compilation with -Werror -WshadowDavid Faure2012-02-082-6/+6
| | | | | Change-Id: I2ef8f288415820fa08e5bab8b99a00b1ad0f2988 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use Q_PROCESSOR_* when chosing an atomic implementationBradley T. Hughes2012-02-084-84/+12
| | | | | | | | | | Use the new Q_PROCESSOR_* macros to decide which headers to include in the atomic implementation. This also removes qatomic_arm.h, which isn't needed anymore, just select the correct qatomic_armv*.h from qbasicatomic.h Change-Id: I954848feafb8c420949d066ffcee1dd2b271e13b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add qprocessordetection.hBradley T. Hughes2012-02-083-0/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This detects the target processor based on preprocessor #defines, setting Q_PROCESSOR_${FAMILY} accordingly. Optional Q_PROCESSOR_${FAMILY}_${REVISION/VARIANT} #defines are also provided, usually dependent on how the compiler is invoked. Currently detected families (and variants) include: ARM (v5, v6, and v7) X86 (i386 and x86_64, as X86_32 and X86_64 respectively) IA-64 MIPS (I, II, III, IV, 32, 64) Other families that currently are not detected, but Qt has (or had) support for include: Alpha AVR32 Blackfin PA-RISC PowerPC (optional 64-bit variant) S390 (and S390X 64-bit variant) SH (and SH-4A) SPARC (SPARC V9) Detection for these is currently commented out, and can be easily enabled later. Change-Id: I571f245c189b9d80c7c3a5369ac595a271f37c8b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix QProcess compile for Windows CE.Andreas Holzammer2012-02-082-4/+6
| | | | | | | | There are no Pipes under Windows CE, so take out the pipereader. Change-Id: I3e6afd403ed36e86a8694674f6c4798f1226ff74 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Initialize dynamic meta object extradata.Andrew den Exter2012-02-081-0/+1
| | | | | | | | | | QMetaObject::invokeMethod attempts to deference the extradata for meta objects versions 6 and greater which is causing a crash in some of the qtquick1 tests. Change-Id: If5b2ca83b15de2cd558976c6b681dd5457c404d1 Reviewed-by: Chris Adams <christopher.adams@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Fix position of a comment.Jędrzej Nowacki2012-02-081-3/+2
| | | | | | | The comment was wrongly placed. It describes v_cast function. Change-Id: I2390e4bf1fc19136bbbecbae4be83d5320ca244f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Code cleanup and micro optimizations in QMetaType.Jędrzej Nowacki2012-02-082-61/+67
| | | | | | Change-Id: I0fbd713fcdf094f9d13acee855b6dd6986695e0d Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Don't include qguifunctions_wince.h in QtCore.Andreas Holzammer2012-02-081-1/+0
| | | | | | | | | | qguifunctions_wince.h does not live anymore in QtCore, but instead in QtGui, so do not include them in QtCore. Change-Id: I22222ae7045ee0140924197ac583a3bf2e0f3d36 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Add 'AllButtons' into Qt::MouseButton enum, for use by QMLRick Stockton2012-02-081-0/+1
| | | | | | | | | | | | This allows the QML programmer to set 'acceptedButtons', for a MouseArea, to accept all buttons with a single value. In comparison with OR'ing a long list of Qt::MouseButton values, this is shorter, easier, more clear, and less error-prone. Task-number: QTBUG-24106 Change-Id: I0259969223c0b44b6ce8ae84aed37d20cb77999b Reviewed-by: Alan Alpert <alan.alpert@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Fix compilation with MinGW-w64Jonathan Liu2012-02-082-1/+5
| | | | | | | | | | | | | | | Fix compilation with MinGW-w64 with the following changes: - Include intrin.h to fix __cpuid not declared error - Include intrin.h before *mmintrin.h headers to avoid extern linkable mismatch - Use quintptr instead of unsigned long to handle LLP64 - Do not declare winuser.h structs already provided with MinGW-w64 - Work around IID_IShellItem being declared but not defined with MinGW-w64 - Remove incorrect use of SUCCEEDED macro on pointer Change-Id: Ia21f8e3a1d225cf501e646eacd968bfc744ce0a2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add the mkspecs dir to the include dirs.Stephen Kelly2012-02-081-0/+2
| | | | | | | Change-Id: If844785d7d3645c33e0fcb1206cc52f8ab644070 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Don't allow cd'ing to above root.Jonas Gastal2012-02-071-6/+15
| | | | | | | Task-number: QTBUG-23893 Change-Id: Ifc6e22f135a1f6bff7c0fa8bef3ea7e1042ae819 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: David Faure <david.faure@kdab.com>
* Use Q_OS_WINCE instead of Q_WS_WINCEAndreas Holzammer2012-02-072-2/+2
| | | | | | | | | Window system defines have been deprecated, so use Q_OS_WINCE instead. Change-Id: I52059d0f854fe783ac20610ab248800c3e1e827c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Use the QNX implementation of mkdtemp for win and wince.Andreas Holzammer2012-02-071-23/+14
| | | | | | | | | | There is no mktemp for Windows CE, nor mkdtemp. So use the implementation for QNX for Windows CE too, to simplify the implementation use it for windows too. Change-Id: Icddaf474a2d696752d8f9774fb4f033454e34e83 Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* fix memory leak of QLibraryPrivatejian liang2012-02-071-5/+14
| | | | | | | | | | | | this commit is aimed to fix QTBUG-4341. now QFactoryLoaderPrivate's destructor will call unload() to QLibaryPrivate object which will destory the plugin's root instance if its refcount reach zero. Task-number: QTBUG-4341 Change-Id: I3cd3e071b34271bf5802ab09f6c125beda5e9844 Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Detect incompatibilities in repeated type registrationJoão Abecasis2012-02-071-17/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | QMetaType used to register a typeName and factory functions for creation/destruction of objects. While it would be possible for a single type name to be registered matching different actual types and memory layouts, there was little that could be done about it. Now that QMetaType is tracking type information with a direct impact on data layout and ABI (size and type flags) it is important that we check and detect binary incompatibilities as early as possible. [Such incompatibilities could arise from type name re-use (technically, ODR violations) or, more commonly, as version mismatch between different shared libraries or plugins.] Only type size and flags are checked as function pointers to inline and template or otherwise non-exported functions could trivially differ across translation units and shared libraries. When registering typedef types, a check is made to ensure the same name doesn't get registered as different types. Change-Id: I8211c3de75d4854ce8fafdb620d3a931c206e0c3 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>