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;
}