From: Claudio Cambra Date: Wed, 22 Feb 2023 21:44:17 +0000 (+0100) Subject: Use std::unique_ptr in sparkle updater class rather than manual management X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~92^2^2~77^2~14 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=88b2ae0d2158ccb8539ed8381f2d01558bf090ec;p=nextcloud-desktop.git Use std::unique_ptr in sparkle updater class rather than manual management Signed-off-by: Claudio Cambra --- diff --git a/src/gui/updater/sparkleupdater.h b/src/gui/updater/sparkleupdater.h index 00aa51047..a07ea5353 100644 --- a/src/gui/updater/sparkleupdater.h +++ b/src/gui/updater/sparkleupdater.h @@ -26,7 +26,7 @@ class SparkleUpdater : public Updater Q_OBJECT public: SparkleUpdater(const QUrl &appCastUrl); - ~SparkleUpdater() override; + ~SparkleUpdater(); void setUpdateUrl(const QUrl &url); @@ -39,7 +39,7 @@ public: private: class Private; - Private *d; + std::unique_ptr d; }; } // namespace OCC diff --git a/src/gui/updater/sparkleupdater_mac.mm b/src/gui/updater/sparkleupdater_mac.mm index a4e710424..f4d010900 100644 --- a/src/gui/updater/sparkleupdater_mac.mm +++ b/src/gui/updater/sparkleupdater_mac.mm @@ -76,19 +76,24 @@ namespace OCC { -class SparkleUpdater::Private +class Q_DECL_HIDDEN SparkleUpdater::Private { - public: - SUUpdater* updater; - DelegateObject *delegate; +public: + ~Private() + { + [updater release]; + [delegate release]; + } + + SUUpdater* updater; + DelegateObject *delegate; }; // Delete ~/Library//Preferences/com.owncloud.desktopclient.plist to re-test SparkleUpdater::SparkleUpdater(const QUrl& appCastUrl) : Updater() + , d(std::make_unique()) { - d = new Private; - d->delegate = [[DelegateObject alloc] init]; [d->delegate retain]; @@ -107,11 +112,7 @@ SparkleUpdater::SparkleUpdater(const QUrl& appCastUrl) [d->updater setUserAgentString: userAgent]; } -SparkleUpdater::~SparkleUpdater() -{ - [d->updater release]; - delete d; -} +SparkleUpdater::~SparkleUpdater() = default; void SparkleUpdater::setUpdateUrl(const QUrl &url) {