]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Use std::unique_ptr in sparkle updater class rather than manual management
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 22 Feb 2023 21:44:17 +0000 (22:44 +0100)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Sat, 22 Jul 2023 09:16:39 +0000 (11:16 +0200)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/updater/sparkleupdater.h
src/gui/updater/sparkleupdater_mac.mm

index 00aa510476fcbd07330c32da21f9af6ee2d09452..a07ea5353193e38c6e880369fd800c022fa74703 100644 (file)
@@ -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<Private> d;
 };
 
 } // namespace OCC
index a4e71042478932b413716230b1083becf18a3539..f4d0109009733b507fc0dfb9f9eeccc9ddd704f9 100644 (file)
 
 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<Private>())
 {
-    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)
 {