| OLD | NEW |
| 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 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 bool operator!() const { return this->get() == nullptr; } | 331 bool operator!() const { return this->get() == nullptr; } |
| 332 | 332 |
| 333 T* get() const { return fPtr; } | 333 T* get() const { return fPtr; } |
| 334 T* operator->() const { return fPtr; } | 334 T* operator->() const { return fPtr; } |
| 335 | 335 |
| 336 /** | 336 /** |
| 337 * Adopt the new bare pointer, and call unref() on any previously held obje
ct (if not null). | 337 * Adopt the new bare pointer, and call unref() on any previously held obje
ct (if not null). |
| 338 * No call to ref() will be made. | 338 * No call to ref() will be made. |
| 339 */ | 339 */ |
| 340 void reset(T* ptr = nullptr) { | 340 void reset(T* ptr = nullptr) { |
| 341 if (fPtr != ptr) { | 341 SkSafeUnref(fPtr); |
| 342 SkSafeUnref(fPtr); | 342 fPtr = ptr; |
| 343 fPtr = ptr; | |
| 344 } | |
| 345 } | 343 } |
| 346 | 344 |
| 347 /** | 345 /** |
| 348 * Return the bare pointer, and set the internal object pointer to nullptr. | 346 * Return the bare pointer, and set the internal object pointer to nullptr. |
| 349 * The caller must assume ownership of the object, and manage its reference
count directly. | 347 * The caller must assume ownership of the object, and manage its reference
count directly. |
| 350 * No call to unref() will be made. | 348 * No call to unref() will be made. |
| 351 */ | 349 */ |
| 352 T* SK_WARN_UNUSED_RESULT release() { | 350 T* SK_WARN_UNUSED_RESULT release() { |
| 353 T* ptr = fPtr; | 351 T* ptr = fPtr; |
| 354 fPtr = nullptr; | 352 fPtr = nullptr; |
| 355 return ptr; | 353 return ptr; |
| 356 } | 354 } |
| 357 | 355 |
| 358 private: | 356 private: |
| 359 T* fPtr; | 357 T* fPtr; |
| 360 }; | 358 }; |
| 361 | 359 |
| 362 template <typename T, typename... Args> | 360 template <typename T, typename... Args> |
| 363 sk_sp<T> sk_make_sp(Args&&... args) { | 361 sk_sp<T> sk_make_sp(Args&&... args) { |
| 364 return sk_sp<T>(new T(std::forward<Args>(args)...)); | 362 return sk_sp<T>(new T(std::forward<Args>(args)...)); |
| 365 } | 363 } |
| 366 | 364 |
| 367 #endif | 365 #endif |
| OLD | NEW |