| Index: src/gpu/GrDrawTarget.cpp | 
| diff --git a/src/gpu/GrDrawTarget.cpp b/src/gpu/GrDrawTarget.cpp | 
| index b144caf63e647e19520515da0816bc7f591d2633..e830145cfbf05257c2663ad94384af8b8d1905a9 100644 | 
| --- a/src/gpu/GrDrawTarget.cpp | 
| +++ b/src/gpu/GrDrawTarget.cpp | 
| @@ -455,15 +455,16 @@ bool GrDrawTarget::setupDstReadIfNecessary(GrDeviceCoordTexture* dstCopy, const | 
| desc.fWidth = copyRect.width(); | 
| desc.fHeight = copyRect.height(); | 
|  | 
| -    GrAutoScratchTexture ast(fContext, desc, GrContext::kApprox_ScratchTexMatch); | 
| +    SkAutoTUnref<GrTexture> copy( | 
| +        fContext->refScratchTexture(desc, GrContext::kApprox_ScratchTexMatch)); | 
|  | 
| -    if (NULL == ast.texture()) { | 
| +    if (!copy) { | 
| GrPrintf("Failed to create temporary copy of destination texture.\n"); | 
| return false; | 
| } | 
| SkIPoint dstPoint = {0, 0}; | 
| -    if (this->copySurface(ast.texture(), rt, copyRect, dstPoint)) { | 
| -        dstCopy->setTexture(ast.texture()); | 
| +    if (this->copySurface(copy, rt, copyRect, dstPoint)) { | 
| +        dstCopy->setTexture(copy); | 
| dstCopy->setOffset(copyRect.fLeft, copyRect.fTop); | 
| return true; | 
| } else { | 
|  |