Chromium Code Reviews| Index: src/effects/gradients/SkGradientShader.cpp |
| diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp |
| index 27761993461ba7761a8afc57c36eac9ec2754cc4..c9b92b3a9b89bb6734d43919d25d437971e358d0 100644 |
| --- a/src/effects/gradients/SkGradientShader.cpp |
| +++ b/src/effects/gradients/SkGradientShader.cpp |
| @@ -513,13 +513,14 @@ const uint16_t* SkGradientShaderBase::getCache16() const { |
| const SkPMColor* SkGradientShaderBase::getCache32() const { |
| if (fCache32 == NULL) { |
| - // double the count for dither entries |
| - const int entryCount = kCache32Count * 4; |
| - const size_t allocSize = sizeof(SkPMColor) * entryCount; |
| + SkImageInfo info; |
|
scroggo
2013/11/20 21:04:28
FIXME that info can be retrieved from fCache32Pixe
reed1
2013/11/20 21:27:18
? I'm not sure why that would be better?
scroggo
2013/11/20 21:35:19
I guess not...
|
| + info.fWidth = kCache32Count; |
| + info.fHeight = 4; // for our 4 dither rows |
| + info.fAlphaType = kPremul_SkAlphaType; |
| + info.fColorType = kPMColor_SkColorType; |
| if (NULL == fCache32PixelRef) { |
| - fCache32PixelRef = SkNEW_ARGS(SkMallocPixelRef, |
| - (NULL, allocSize, NULL)); |
| + fCache32PixelRef = SkMallocPixelRef::Allocate(info, 0, NULL); |
| } |
| fCache32 = (SkPMColor*)fCache32PixelRef->getAddr(); |
| if (fColorCount == 2) { |
| @@ -541,8 +542,7 @@ const SkPMColor* SkGradientShaderBase::getCache32() const { |
| } |
| if (fMapper) { |
| - SkMallocPixelRef* newPR = SkNEW_ARGS(SkMallocPixelRef, |
| - (NULL, allocSize, NULL)); |
| + SkMallocPixelRef* newPR = SkMallocPixelRef::Allocate(info, 0, NULL); |
| SkPMColor* linear = fCache32; // just computed linear data |
| SkPMColor* mapped = (SkPMColor*)newPR->getAddr(); // storage for mapped data |
| SkUnitMapper* map = fMapper; |