Index: src/gpu/GrLayerCache.cpp |
diff --git a/src/gpu/GrLayerCache.cpp b/src/gpu/GrLayerCache.cpp |
index 58994790b732e3b3e515652e85c3887449020904..2c97387c7f93fdcfa8851e3773f05c21c8d31118 100644 |
--- a/src/gpu/GrLayerCache.cpp |
+++ b/src/gpu/GrLayerCache.cpp |
@@ -198,8 +198,10 @@ bool GrLayerCache::lock(GrCachedLayer* layer, const GrTextureDesc& desc) { |
// The texture wouldn't fit in the cache - give it it's own texture. |
// This path always uses a new scratch texture and (thus) doesn't cache anything. |
// This can yield a lot of re-rendering |
- layer->setTexture(fContext->lockAndRefScratchTexture(desc, GrContext::kApprox_ScratchTexMatch), |
- GrIRect16::MakeWH(SkToS16(desc.fWidth), SkToS16(desc.fHeight))); |
+ SkAutoTUnref<GrTexture> tex(fContext->lockAndRefScratchTexture(desc, |
+ GrContext::kApprox_ScratchTexMatch)); |
+ |
+ layer->setTexture(tex, GrIRect16::MakeWH(SkToS16(desc.fWidth), SkToS16(desc.fHeight))); |
layer->setLocked(true); |
return false; |
} |