diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-05-03 14:08:50 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-05-05 03:03:20 +0000 |
commit | f45c6c180463ccb6620e1d273a264f14a1204a93 (patch) | |
tree | 1bb209a0a1f14ee1af7906ffed7d7bfc9a3d31cf | |
parent | fb89364e3a1499a41c81d29443966fab89f602e3 (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.cpp | 6 |
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; } |