summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2017-05-03 14:08:50 -0700
committerThiago Macieira <thiago.macieira@intel.com>2017-05-05 03:03:20 +0000
commitf45c6c180463ccb6620e1d273a264f14a1204a93 (patch)
tree1bb209a0a1f14ee1af7906ffed7d7bfc9a3d31cf
parentfb89364e3a1499a41c81d29443966fab89f602e3 (diff)
QInternal::unregisterCallback: don't crash on unregistering during exit
Task-number: QTBUG-60558 Change-Id: Ica9894dc9b5e48278fd4fffd14bb34c6d98d2555 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-rw-r--r--src/corelib/global/qglobal.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index c37503f3db..22fc20d47e 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -3988,8 +3988,10 @@ bool QInternal::registerCallback(Callback cb, qInternalCallback callback)
bool QInternal::unregisterCallback(Callback cb, qInternalCallback callback)
{
if (cb >= 0 && cb < QInternal::LastCallback) {
- QInternal_CallBackTable *cbt = global_callback_table();
- return (bool) cbt->callbacks[cb].removeAll(callback);
+ if (global_callback_table.exists()) {
+ QInternal_CallBackTable *cbt = global_callback_table();
+ return (bool) cbt->callbacks[cb].removeAll(callback);
+ }
}
return false;
}