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

Side by Side Diff: include/core/SkRefCnt.h

Issue 1812843002: Add back SkAutoTUnref::detach() for Android temporarily. (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 | « no previous file | 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 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkRefCnt_DEFINED 8 #ifndef SkRefCnt_DEFINED
9 #define SkRefCnt_DEFINED 9 #define SkRefCnt_DEFINED
10 10
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 189
190 /** 190 /**
191 * Utility class that simply unref's its argument in the destructor. 191 * Utility class that simply unref's its argument in the destructor.
192 */ 192 */
193 template <typename T> class SkAutoTUnref : public std::unique_ptr<T, SkTUnref<T> > { 193 template <typename T> class SkAutoTUnref : public std::unique_ptr<T, SkTUnref<T> > {
194 public: 194 public:
195 explicit SkAutoTUnref(T* obj = nullptr) : std::unique_ptr<T, SkTUnref<T>>(ob j) {} 195 explicit SkAutoTUnref(T* obj = nullptr) : std::unique_ptr<T, SkTUnref<T>>(ob j) {}
196 196
197 operator T*() const { return this->get(); } 197 operator T*() const { return this->get(); }
198 198
199 #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
200 // Need to update graphics/Shader.cpp.
201 T* detach() { return this->release(); }
202 #endif
203
199 // Android's std::unique_ptr's operator bool() is sometimes not explicit... 204 // Android's std::unique_ptr's operator bool() is sometimes not explicit...
200 // so override it with our own explcitly explicit version. 205 // so override it with our own explcitly explicit version.
201 explicit operator bool() const { return this->get() != nullptr; } 206 explicit operator bool() const { return this->get() != nullptr; }
202 }; 207 };
203 // Can't use the #define trick below to guard a bare SkAutoTUnref(...) because i t's templated. :( 208 // Can't use the #define trick below to guard a bare SkAutoTUnref(...) because i t's templated. :(
204 209
205 class SkAutoUnref : public SkAutoTUnref<SkRefCnt> { 210 class SkAutoUnref : public SkAutoTUnref<SkRefCnt> {
206 public: 211 public:
207 SkAutoUnref(SkRefCnt* obj) : SkAutoTUnref<SkRefCnt>(obj) {} 212 SkAutoUnref(SkRefCnt* obj) : SkAutoTUnref<SkRefCnt>(obj) {}
208 }; 213 };
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 * 451 *
447 * This function may be helpful while we convert callers from ptr-based to sk_s p-based parameters. 452 * This function may be helpful while we convert callers from ptr-based to sk_s p-based parameters.
448 */ 453 */
449 template <typename T> sk_sp<T> sk_ref_sp(T* obj) { 454 template <typename T> sk_sp<T> sk_ref_sp(T* obj) {
450 return sk_sp<T>(SkSafeRef(obj)); 455 return sk_sp<T>(SkSafeRef(obj));
451 } 456 }
452 457
453 #endif 458 #endif
454 459
455 #endif 460 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698