Index: src/effects/gradients/SkGradientShader.cpp |
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp |
index 27761993461ba7761a8afc57c36eac9ec2754cc4..5d200d18d354135f7f11e4807964631edc32409e 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; |
+ 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::NewAllocate(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::NewAllocate(info, 0, NULL); |
SkPMColor* linear = fCache32; // just computed linear data |
SkPMColor* mapped = (SkPMColor*)newPR->getAddr(); // storage for mapped data |
SkUnitMapper* map = fMapper; |