Use sk_sp to own GrCaps in GrContext.

Change-Id: I46cd37132ecdf0f93be4509c6a06fb74cb185076
Reviewed-on: https://skia-review.googlesource.com/82625
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index eaacdb1..388c941 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -173,7 +173,6 @@
 }
 
 GrContext::GrContext() : fUniqueID(next_id()) {
-    fCaps = nullptr;
     fResourceCache = nullptr;
     fResourceProvider = nullptr;
     fAtlasGlyphCache = nullptr;
@@ -195,8 +194,8 @@
 
 bool GrContext::init(const GrContextOptions& options) {
     ASSERT_SINGLE_OWNER
-    fCaps = SkRef(fGpu->caps());
-    fResourceCache = new GrResourceCache(fCaps, fUniqueID);
+    fCaps = sk_ref_sp(fGpu->caps());
+    fResourceCache = new GrResourceCache(fCaps.get(), fUniqueID);
     fResourceProvider = new GrResourceProvider(fGpu.get(), fResourceCache, &fSingleOwner);
 
     fDisableGpuYUVConversion = options.fDisableGpuYUVConversion;
@@ -268,13 +267,11 @@
     delete fResourceProvider;
     delete fResourceCache;
     delete fAtlasGlyphCache;
-
-    fCaps->unref();
 }
 
 sk_sp<GrContextThreadSafeProxy> GrContext::threadSafeProxy() {
     if (!fThreadSafeProxy) {
-        fThreadSafeProxy.reset(new GrContextThreadSafeProxy(sk_ref_sp(fCaps), this->uniqueID()));
+        fThreadSafeProxy.reset(new GrContextThreadSafeProxy(fCaps, this->uniqueID()));
     }
     return fThreadSafeProxy;
 }