summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2013-09-05 11:00:25 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-05 13:01:39 +0200
commitd1a8623ecb4ef9f9942873503af7eb21a420ec7e (patch)
treee48894bd4d2c966830613fdd0b93f35334351a7b /src/corelib/kernel
parentcc594d2064799f09f8d60981f75354745d98c717 (diff)
QVariant: Don't crash when doing user-defined conversion to QObject*
The destructor of the ConverterFunctor calls unregisterConverter. If the instance is static (as it is in qmetatype.h), then this method can be called after the QGlobalStatic has already been destroyed. Change-Id: I33b70734cbe09dfa888e887280c349e43ad1b855 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qmetatype.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index 586d6cf29f..17fbbda720 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -558,6 +558,8 @@ bool QMetaType::registerConverterFunction(const QtPrivate::AbstractConverterFunc
*/
void QMetaType::unregisterConverterFunction(int from, int to)
{
+ if (customTypesConversionRegistry.isDestroyed())
+ return;
customTypesConversionRegistry()->remove(from, to);
}