From 770220835757f677990c31f4bd95861ca8ef5853 Mon Sep 17 00:00:00 2001 From: Uwe Klotz Date: Thu, 26 Apr 2018 14:43:32 +0200 Subject: [PATCH] Fix memory leak when loading cover art --- src/library/coverartcache.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/library/coverartcache.cpp b/src/library/coverartcache.cpp index eb91411473..e76168422d 100644 --- a/src/library/coverartcache.cpp +++ b/src/library/coverartcache.cpp @@ -94,6 +94,7 @@ QPixmap CoverArtCache::requestCover(const CoverInfo& requestInfo, } m_runningRequests.insert(requestId); + // The watcher will be deleted in coverLoaded() QFutureWatcher* watcher = new QFutureWatcher(this); QFuture future = QtConcurrent::run( this, &CoverArtCache::loadCover, requestInfo, pRequestor, @@ -146,9 +147,13 @@ CoverArtCache::FutureResult CoverArtCache::loadCover( // watcher void CoverArtCache::coverLoaded() { - QFutureWatcher* watcher; - watcher = reinterpret_cast*>(sender()); - FutureResult res = watcher->result(); + FutureResult res; + { + QFutureWatcher* watcher = + static_cast*>(sender()); + res = watcher->result(); + watcher->deleteLater(); + } if (sDebug) { kLogger.debug() << "coverLoaded" << res.cover;