From: Stephan Beyer Date: Fri, 15 May 2020 23:00:55 +0000 (+0200) Subject: Fix leak in CloudProviderWrapper X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~220^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=71a474129b94820f7d78919a92598c2828f9d6aa;p=nextcloud-desktop.git Fix leak in CloudProviderWrapper The member _recentlyChanged, allocated in the constructor, was leaking. The ad-hoc way to fix the leak would have been to add a destructor that deletes _recentlyChanged. However, there is no good reason why _recentlyChanged has to be a pointer to a QList (instead of a QList). Hence this commit changes the type of the _recentlyChanged member from a QList pointer to a QList. Signed-off-by: Stephan Beyer --- diff --git a/src/gui/cloudproviders/cloudproviderwrapper.cpp b/src/gui/cloudproviders/cloudproviderwrapper.cpp index 421ae625a..3b520721a 100644 --- a/src/gui/cloudproviders/cloudproviderwrapper.cpp +++ b/src/gui/cloudproviders/cloudproviderwrapper.cpp @@ -38,7 +38,6 @@ CloudProviderWrapper::CloudProviderWrapper(QObject *parent, Folder *folder, int { GMenuModel *model; GActionGroup *action_group; - _recentlyChanged = new QList>(); QString accountName = QString("Folder/%1").arg(folderId); _cloudProvider = CLOUD_PROVIDERS_PROVIDER_EXPORTER(cloudprovider); @@ -109,11 +108,11 @@ void CloudProviderWrapper::slotUpdateProgress(const QString &folder, const Progr if (f) { QString fullPath = f->path() + '/' + progress._lastCompletedItem._file; if (QFile(fullPath).exists()) { - if (_recentlyChanged->length() > 5) - _recentlyChanged->removeFirst(); - _recentlyChanged->append(qMakePair(actionText, fullPath)); + if (_recentlyChanged.length() > 5) + _recentlyChanged.removeFirst(); + _recentlyChanged.append(qMakePair(actionText, fullPath)); } else { - _recentlyChanged->append(qMakePair(actionText, QString(""))); + _recentlyChanged.append(qMakePair(actionText, QString(""))); } } @@ -152,9 +151,9 @@ void CloudProviderWrapper::slotUpdateProgress(const QString &folder, const Progr && shouldShowInRecentsMenu(progress._lastCompletedItem)) { GMenuItem* item; g_menu_remove_all (G_MENU(_recentMenu)); - if(!_recentlyChanged->isEmpty()) { + if(!_recentlyChanged.isEmpty()) { QList>::iterator i; - for (i = _recentlyChanged->begin(); i != _recentlyChanged->end(); i++) { + for (i = _recentlyChanged.begin(); i != _recentlyChanged.end(); i++) { QString label = i->first; QString fullPath = i->second; item = menu_item_new(label, "cloudprovider.showfile"); diff --git a/src/gui/cloudproviders/cloudproviderwrapper.h b/src/gui/cloudproviders/cloudproviderwrapper.h index 24830c89a..e3a46cc43 100644 --- a/src/gui/cloudproviders/cloudproviderwrapper.h +++ b/src/gui/cloudproviders/cloudproviderwrapper.h @@ -57,7 +57,7 @@ private: Folder *_folder; CloudProvidersProviderExporter *_cloudProvider; CloudProvidersAccountExporter *_cloudProviderAccount; - QList> *_recentlyChanged; + QList> _recentlyChanged; bool _paused; GMenu* _mainMenu = nullptr; GMenu* _recentMenu = nullptr;