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

Side by Side Diff: include/private/SkTemplates.h

Issue 1817153002: Remove transitional explicit operator bool. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 9 months 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 unified diff | Download patch
« no previous file with comments | « include/core/SkRefCnt.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkTemplates_DEFINED 10 #ifndef SkTemplates_DEFINED
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 template <typename T> class SkAutoTDelete : public std::unique_ptr<T> { 94 template <typename T> class SkAutoTDelete : public std::unique_ptr<T> {
95 public: 95 public:
96 SkAutoTDelete(T* obj = NULL) : std::unique_ptr<T>(obj) {} 96 SkAutoTDelete(T* obj = NULL) : std::unique_ptr<T>(obj) {}
97 97
98 operator T*() const { return this->get(); } 98 operator T*() const { return this->get(); }
99 99
100 #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) 100 #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
101 // Need to update graphics/BitmapRegionDecoder.cpp. 101 // Need to update graphics/BitmapRegionDecoder.cpp.
102 T* detach() { return this->release(); } 102 T* detach() { return this->release(); }
103 #endif 103 #endif
104
105 // See SkAutoTUnref for why we do this.
106 explicit operator bool() const { return this->get() != nullptr; }
107 }; 104 };
108 105
109 template <typename T> class SkAutoTDeleteArray : public std::unique_ptr<T[]> { 106 template <typename T> class SkAutoTDeleteArray : public std::unique_ptr<T[]> {
110 public: 107 public:
111 SkAutoTDeleteArray(T array[]) : std::unique_ptr<T[]>(array) {} 108 SkAutoTDeleteArray(T array[]) : std::unique_ptr<T[]>(array) {}
112 }; 109 };
113 110
114 /** Allocate an array of T elements, and free the array in the destructor 111 /** Allocate an array of T elements, and free the array in the destructor
115 */ 112 */
116 template <typename T> class SkAutoTArray : SkNoncopyable { 113 template <typename T> class SkAutoTArray : SkNoncopyable {
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 * Returns void* because this object does not initialize the 464 * Returns void* because this object does not initialize the
468 * memory. Use placement new for types that require a cons. 465 * memory. Use placement new for types that require a cons.
469 */ 466 */
470 void* get() { return fStorage.get(); } 467 void* get() { return fStorage.get(); }
471 const void* get() const { return fStorage.get(); } 468 const void* get() const { return fStorage.get(); }
472 private: 469 private:
473 SkAlignedSStorage<sizeof(T)*N> fStorage; 470 SkAlignedSStorage<sizeof(T)*N> fStorage;
474 }; 471 };
475 472
476 #endif 473 #endif
OLDNEW
« no previous file with comments | « include/core/SkRefCnt.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698