| Index: src/effects/gradients/SkGradientShader.cpp | 
| =================================================================== | 
| --- src/effects/gradients/SkGradientShader.cpp	(revision 12666) | 
| +++ src/effects/gradients/SkGradientShader.cpp	(working copy) | 
| @@ -513,14 +513,13 @@ | 
|  | 
| const SkPMColor* SkGradientShaderBase::getCache32() const { | 
| if (fCache32 == NULL) { | 
| -        SkImageInfo info; | 
| -        info.fWidth = kCache32Count; | 
| -        info.fHeight = 4;   // for our 4 dither rows | 
| -        info.fAlphaType = kPremul_SkAlphaType; | 
| -        info.fColorType = kPMColor_SkColorType; | 
| +        // double the count for dither entries | 
| +        const int entryCount = kCache32Count * 4; | 
| +        const size_t allocSize = sizeof(SkPMColor) * entryCount; | 
|  | 
| if (NULL == fCache32PixelRef) { | 
| -            fCache32PixelRef = SkMallocPixelRef::NewAllocate(info, 0, NULL); | 
| +            fCache32PixelRef = SkNEW_ARGS(SkMallocPixelRef, | 
| +                                          (NULL, allocSize, NULL)); | 
| } | 
| fCache32 = (SkPMColor*)fCache32PixelRef->getAddr(); | 
| if (fColorCount == 2) { | 
| @@ -542,7 +541,8 @@ | 
| } | 
|  | 
| if (fMapper) { | 
| -            SkMallocPixelRef* newPR = SkMallocPixelRef::NewAllocate(info, 0, NULL); | 
| +            SkMallocPixelRef* newPR = SkNEW_ARGS(SkMallocPixelRef, | 
| +                                                 (NULL, allocSize, NULL)); | 
| SkPMColor* linear = fCache32;           // just computed linear data | 
| SkPMColor* mapped = (SkPMColor*)newPR->getAddr();    // storage for mapped data | 
| SkUnitMapper* map = fMapper; | 
|  |