Index: base/files/file_path_watcher_mac.cc |
diff --git a/base/files/file_path_watcher_mac.cc b/base/files/file_path_watcher_mac.cc |
index d59ca2156beb79705fa0f76c6817702d70f4dd62..2520b9288ae9e2dfcf3371cf117584e954010df9 100644 |
--- a/base/files/file_path_watcher_mac.cc |
+++ b/base/files/file_path_watcher_mac.cc |
@@ -2,8 +2,12 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include <memory> |
+ |
#include "base/files/file_path_watcher.h" |
#include "base/files/file_path_watcher_kqueue.h" |
+#include "base/macros.h" |
+#include "base/memory/ptr_util.h" |
#include "build/build_config.h" |
#if !defined(OS_IOS) |
@@ -16,6 +20,9 @@ namespace { |
class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { |
public: |
+ FilePathWatcherImpl() = default; |
+ ~FilePathWatcherImpl() override = default; |
+ |
bool Watch(const FilePath& path, |
bool recursive, |
const FilePathWatcher::Callback& callback) override { |
@@ -25,10 +32,10 @@ class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { |
if (!FilePathWatcher::RecursiveWatchAvailable()) |
return false; |
#if !defined(OS_IOS) |
- impl_ = new FilePathWatcherFSEvents(); |
+ impl_ = MakeUnique<FilePathWatcherFSEvents>(); |
#endif // OS_IOS |
} else { |
- impl_ = new FilePathWatcherKQueue(); |
+ impl_ = MakeUnique<FilePathWatcherKQueue>(); |
} |
DCHECK(impl_.get()); |
return impl_->Watch(path, recursive, callback); |
@@ -40,17 +47,17 @@ class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { |
set_cancelled(); |
} |
- protected: |
- ~FilePathWatcherImpl() override {} |
+ private: |
+ std::unique_ptr<PlatformDelegate> impl_; |
- scoped_refptr<PlatformDelegate> impl_; |
+ DISALLOW_COPY_AND_ASSIGN(FilePathWatcherImpl); |
}; |
} // namespace |
FilePathWatcher::FilePathWatcher() { |
sequence_checker_.DetachFromSequence(); |
- impl_ = new FilePathWatcherImpl(); |
+ impl_ = MakeUnique<FilePathWatcherImpl>(); |
} |
} // namespace base |