diff --git a/src/gui/updater/sparkleupdater.h b/src/gui/updater/sparkleupdater.h index 00aa510476..a07ea53531 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 a4e7104247..f4d0109009 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) {