summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/logger/src
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-24 18:06:04 +0100
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-25 17:47:14 +0100
commitc979717b806479e5c429c89dc2800367df28b372 (patch)
treee2a59eac1c8bbf9364e8ad803a306a153b7c9f58 /utils/rbutilqt/logger/src
parent774b35cccfb2d3c94374bd47398d19e1b3c6f012 (diff)
downloadrockbox-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
Diffstat (limited to 'utils/rbutilqt/logger/src')
-rw-r--r--utils/rbutilqt/logger/src/Logger.cpp5
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()));