summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-09-26 12:49:48 (GMT)
committerKevin Smith <kevin.smith@isode.com>2016-09-26 22:04:37 (GMT)
commit65596031acaf7d4f277bd75758bb1c551501ce86 (patch)
treeaac3a8bf6dbdccc1d476225b50ba25decf1a46cc /SwifTools/Notifier
parent05fbe78f5c3b30517f7152b37c157a99120682dc (diff)
downloadswift-65596031acaf7d4f277bd75758bb1c551501ce86.zip
swift-65596031acaf7d4f277bd75758bb1c551501ce86.tar.bz2
Use const std::unique_ptr for pimpl idiom usage
All our pimpl idiom usage used std::shared_ptr due to being written in C++03. Now we use C++11 and const std::unique_ptr is more sensible. Test-Information: Builds on macOS 10.12 and unit tests pass. Change-Id: I1b9b3fbb22e337d53ae71e5a5e03118998cc3376
Diffstat (limited to 'SwifTools/Notifier')
-rw-r--r--SwifTools/Notifier/GrowlNotifier.h4
-rw-r--r--SwifTools/Notifier/GrowlNotifier.mm3
-rw-r--r--SwifTools/Notifier/NotificationCenterNotifier.h3
-rw-r--r--SwifTools/Notifier/NotificationCenterNotifier.mm3
4 files changed, 7 insertions, 6 deletions
diff --git a/SwifTools/Notifier/GrowlNotifier.h b/SwifTools/Notifier/GrowlNotifier.h
index cbfe3e9..1b5f191 100644
--- a/SwifTools/Notifier/GrowlNotifier.h
+++ b/SwifTools/Notifier/GrowlNotifier.h
@@ -6,6 +6,8 @@
#pragma once
+#include <memory>
+
#include <boost/filesystem/fstream.hpp>
#include <SwifTools/Notifier/Notifier.h>
@@ -36,6 +38,6 @@ namespace Swift {
private:
class Private;
- std::shared_ptr<Private> p;
+ const std::unique_ptr<Private> p;
};
}
diff --git a/SwifTools/Notifier/GrowlNotifier.mm b/SwifTools/Notifier/GrowlNotifier.mm
index 1356805..4ca53f7 100644
--- a/SwifTools/Notifier/GrowlNotifier.mm
+++ b/SwifTools/Notifier/GrowlNotifier.mm
@@ -32,8 +32,7 @@ class GrowlNotifier::Private {
boost::intrusive_ptr<GrowlNotifierDelegate> delegate;
};
-GrowlNotifier::GrowlNotifier(const std::string& name) {
- p = std::make_shared<Private>();
+GrowlNotifier::GrowlNotifier(const std::string& name) : p(new Private()){
p->delegate = boost::intrusive_ptr<GrowlNotifierDelegate>([[GrowlNotifierDelegate alloc] init], false);
p->delegate.get().notifier = this;
p->delegate.get().name = std2NSString(name);
diff --git a/SwifTools/Notifier/NotificationCenterNotifier.h b/SwifTools/Notifier/NotificationCenterNotifier.h
index 19eb944..838971c 100644
--- a/SwifTools/Notifier/NotificationCenterNotifier.h
+++ b/SwifTools/Notifier/NotificationCenterNotifier.h
@@ -6,6 +6,7 @@
#pragma once
+#include <memory>
#include <string>
#include <SwifTools/Notifier/Notifier.h>
@@ -32,7 +33,7 @@ public:
private:
class Private;
- std::shared_ptr<Private> p;
+ const std::unique_ptr<Private> p;
};
}
diff --git a/SwifTools/Notifier/NotificationCenterNotifier.mm b/SwifTools/Notifier/NotificationCenterNotifier.mm
index 35c740a..1538186 100644
--- a/SwifTools/Notifier/NotificationCenterNotifier.mm
+++ b/SwifTools/Notifier/NotificationCenterNotifier.mm
@@ -39,8 +39,7 @@ class NotificationCenterNotifier::Private {
boost::intrusive_ptr<NotificationCenterNotifierDelegate> delegate;
};
-NotificationCenterNotifier::NotificationCenterNotifier() {
- p = std::make_shared<Private>();
+NotificationCenterNotifier::NotificationCenterNotifier() : p(new Private()) {
p->delegate = boost::intrusive_ptr<NotificationCenterNotifierDelegate>([[NotificationCenterNotifierDelegate alloc] init], false);
[p->delegate.get() setNotifier: this];