diff options
author | Jani Hautakangas <jani.hautakangas@lge.com> | 2014-06-16 00:32:15 +0300 |
---|---|---|
committer | Jaeyoon Jung <jaeyoon.jung@lge.com> | 2020-05-18 17:20:15 +0900 |
commit | 4683b0b57f0571e400ab0ed48530ad8c6171d9f6 (patch) | |
tree | 4f4f33bb9b3487ebdd8bfc3c51dd547bceaa8282 /src/corelib/kernel/qabstracteventdispatcher.cpp | |
parent | 8a11641bb9709b2c6cb5051163eb5086838c8fac (diff) |
webOS: Fix allocateTimerId
Change-Id: I8b3777f4035401763d86b0245de43b63573b9ea6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/kernel/qabstracteventdispatcher.cpp')
-rw-r--r-- | src/corelib/kernel/qabstracteventdispatcher.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index 685a0c595a..b2bc199c8c 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -90,7 +90,14 @@ Q_GLOBAL_STATIC(QtTimerIdFreeList, timerIdFreeList) int QAbstractEventDispatcherPrivate::allocateTimerId() { - return timerIdFreeList()->next(); + // This function may be called after timerIdFreeList() has been destructed + // for example in case when application exits without waiting for + // running threads to exit and running thread finished() has been connected + // to a slot which triggers a sequence that registers new timer. + // See https://bugreports.qt-project.org/browse/QTBUG-38957. + if (QtTimerIdFreeList *fl = timerIdFreeList()) + return fl->next(); + return 0; // Note! returning 0 generates a warning } void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) |