diff options
author | Tobias Markmann <tm@ayena.de> | 2016-09-26 12:49:48 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2016-09-26 22:04:37 (GMT) |
commit | 65596031acaf7d4f277bd75758bb1c551501ce86 (patch) | |
tree | aac3a8bf6dbdccc1d476225b50ba25decf1a46cc /SwifTools/Notifier | |
parent | 05fbe78f5c3b30517f7152b37c157a99120682dc (diff) | |
download | swift-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.h | 4 | ||||
-rw-r--r-- | SwifTools/Notifier/GrowlNotifier.mm | 3 | ||||
-rw-r--r-- | SwifTools/Notifier/NotificationCenterNotifier.h | 3 | ||||
-rw-r--r-- | SwifTools/Notifier/NotificationCenterNotifier.mm | 3 |
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]; |