diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2021-12-24 18:06:04 +0100 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2021-12-25 17:47:14 +0100 |
commit | c979717b806479e5c429c89dc2800367df28b372 (patch) | |
tree | e2a59eac1c8bbf9364e8ad803a306a153b7c9f58 | |
parent | 774b35cccfb2d3c94374bd47398d19e1b3c6f012 (diff) | |
download | rockbox-c979717b806479e5c429c89dc2800367df28b372.tar.gz rockbox-c979717b806479e5c429c89dc2800367df28b372.zip |
rbutil: Fix logger segfault on application exit.
Getting the values from a QMultiMap() returns a list, but not the same
on consecutive calls. Thus calling it twice to get the iterators will
yield different lists, causing the iterator to fail.
Fixes a segfault when destructing the logger.
Change-Id: Ie8ea8d3a9acf6fbd3969fbb49cbc50a1c1fa2854
-rw-r--r-- | utils/rbutilqt/logger/src/Logger.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/utils/rbutilqt/logger/src/Logger.cpp b/utils/rbutilqt/logger/src/Logger.cpp index b813947efe..5499d03fcd 100644 --- a/utils/rbutilqt/logger/src/Logger.cpp +++ b/utils/rbutilqt/logger/src/Logger.cpp | |||
@@ -600,8 +600,9 @@ Logger::~Logger() | |||
600 | // Cleanup appenders | 600 | // Cleanup appenders |
601 | QMutexLocker appendersLocker(&d->loggerMutex); | 601 | QMutexLocker appendersLocker(&d->loggerMutex); |
602 | #if QT_VERSION >= 0x050e00 | 602 | #if QT_VERSION >= 0x050e00 |
603 | QSet<AbstractAppender*> deleteList(QSet<AbstractAppender*>(d->appenders.begin(), d->appenders.end())); | 603 | QSet<AbstractAppender*> deleteList(d->appenders.begin(), d->appenders.end()); |
604 | deleteList.unite(QSet<AbstractAppender*>(d->categoryAppenders.values().begin(), d->categoryAppenders.values().end())); | 604 | auto cal = d->categoryAppenders.values(); |
605 | deleteList.unite(QSet<AbstractAppender*>(cal.begin(), cal.end())); | ||
605 | #else | 606 | #else |
606 | QSet<AbstractAppender*> deleteList(QSet<AbstractAppender*>::fromList(d->appenders)); | 607 | QSet<AbstractAppender*> deleteList(QSet<AbstractAppender*>::fromList(d->appenders)); |
607 | deleteList.unite(QSet<AbstractAppender*>::fromList(d->categoryAppenders.values())); | 608 | deleteList.unite(QSet<AbstractAppender*>::fromList(d->categoryAppenders.values())); |