Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1595)

Unified Diff: base/mac/scoped_cffiledescriptorref.h

Issue 1551943002: Rewrite most of the scopers in //base/mac to use ScopedTypeRef or ScopedGeneric. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix iOS Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/mac/scoped_cffiledescriptorref.h
diff --git a/base/mac/scoped_cffiledescriptorref.h b/base/mac/scoped_cffiledescriptorref.h
index 00b2f682c7b222d748114bed24402dc2b3005a17..923a159c768652c06b7ff01e3d608582ae517f30 100644
--- a/base/mac/scoped_cffiledescriptorref.h
+++ b/base/mac/scoped_cffiledescriptorref.h
@@ -7,67 +7,31 @@
#include <CoreFoundation/CoreFoundation.h>
-#include "base/compiler_specific.h"
-#include "base/macros.h"
+#include "base/scoped_generic.h"
namespace base {
namespace mac {
+namespace internal {
+
+struct ScopedCFFileDescriptorRefTraits {
+ static CFFileDescriptorRef InvalidValue() { return nullptr; }
+ static void Free(CFFileDescriptorRef ref) {
+ CFFileDescriptorInvalidate(ref);
+ CFRelease(ref);
+ }
+};
+
+} // namespace internal
+
// ScopedCFFileDescriptorRef is designed after ScopedCFTypeRef<>. On
// destruction, it will invalidate the file descriptor.
// ScopedCFFileDescriptorRef (unlike ScopedCFTypeRef<>) does not support RETAIN
// semantics, copying, or assignment, as doing so would increase the chances
// that a file descriptor is invalidated while still in use.
-class ScopedCFFileDescriptorRef {
- public:
- explicit ScopedCFFileDescriptorRef(CFFileDescriptorRef fdref = NULL)
- : fdref_(fdref) {
- }
-
- ~ScopedCFFileDescriptorRef() {
- if (fdref_) {
- CFFileDescriptorInvalidate(fdref_);
- CFRelease(fdref_);
- }
- }
-
- void reset(CFFileDescriptorRef fdref = NULL) {
- if (fdref_ == fdref)
- return;
- if (fdref_) {
- CFFileDescriptorInvalidate(fdref_);
- CFRelease(fdref_);
- }
- fdref_ = fdref;
- }
-
- bool operator==(CFFileDescriptorRef that) const {
- return fdref_ == that;
- }
-
- bool operator!=(CFFileDescriptorRef that) const {
- return fdref_ != that;
- }
-
- operator CFFileDescriptorRef() const {
- return fdref_;
- }
-
- CFFileDescriptorRef get() const {
- return fdref_;
- }
-
- CFFileDescriptorRef release() WARN_UNUSED_RESULT {
- CFFileDescriptorRef temp = fdref_;
- fdref_ = NULL;
- return temp;
- }
-
- private:
- CFFileDescriptorRef fdref_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedCFFileDescriptorRef);
-};
+using ScopedCFFileDescriptorRef =
+ ScopedGeneric<CFFileDescriptorRef,
+ internal::ScopedCFFileDescriptorRefTraits>;
} // namespace mac
} // namespace base

Powered by Google App Engine
This is Rietveld 408576698