| Index: include/core/SkRefCnt.h
 | 
| diff --git a/include/core/SkRefCnt.h b/include/core/SkRefCnt.h
 | 
| index f159e3b1b705cb70aa63bb540d448241701c0c06..d18a63a49ffdc63e978b4a993ecd497f4a093caf 100644
 | 
| --- a/include/core/SkRefCnt.h
 | 
| +++ b/include/core/SkRefCnt.h
 | 
| @@ -9,9 +9,10 @@
 | 
|  #define SkRefCnt_DEFINED
 | 
|  
 | 
|  #include "../private/SkAtomics.h"
 | 
| -#include "../private/SkUniquePtr.h"
 | 
| +#include "../private/SkTLogic.h"
 | 
|  #include "SkTypes.h"
 | 
|  #include <functional>
 | 
| +#include <memory>
 | 
|  #include <utility>
 | 
|  
 | 
|  #define SK_SUPPORT_TRANSITION_TO_SP_INTERFACES
 | 
| @@ -189,12 +190,16 @@ template <typename T> struct SkTUnref {
 | 
|  /**
 | 
|   *  Utility class that simply unref's its argument in the destructor.
 | 
|   */
 | 
| -template <typename T> class SkAutoTUnref : public skstd::unique_ptr<T, SkTUnref<T>> {
 | 
| +template <typename T> class SkAutoTUnref : public std::unique_ptr<T, SkTUnref<T>> {
 | 
|  public:
 | 
| -    explicit SkAutoTUnref(T* obj = nullptr) : skstd::unique_ptr<T, SkTUnref<T>>(obj) {}
 | 
| +    explicit SkAutoTUnref(T* obj = nullptr) : std::unique_ptr<T, SkTUnref<T>>(obj) {}
 | 
|  
 | 
|      T* detach() { return this->release(); }
 | 
|      operator T*() const { return this->get(); }
 | 
| +
 | 
| +    // Android's std::unique_ptr's operator bool() is sometimes not explicit...
 | 
| +    // so override it with our own explcitly explicit version.
 | 
| +    explicit operator bool() const { return this->get() != nullptr; }
 | 
|  };
 | 
|  // Can't use the #define trick below to guard a bare SkAutoTUnref(...) because it's templated. :(
 | 
|  
 | 
| 
 |