| Index: skia/effects/SkBlurMask.cpp
|
| ===================================================================
|
| --- skia/effects/SkBlurMask.cpp (revision 14480)
|
| +++ skia/effects/SkBlurMask.cpp (working copy)
|
| @@ -234,10 +234,15 @@
|
|
|
| if (src.fImage)
|
| {
|
| + size_t dstSize = dst->computeImageSize();
|
| + if (0 == dstSize) {
|
| + return false; // too big to allocate, abort
|
| + }
|
| +
|
| int sw = src.fBounds.width();
|
| int sh = src.fBounds.height();
|
| const uint8_t* sp = src.fImage;
|
| - uint8_t* dp = SkMask::AllocImage(dst->computeImageSize());
|
| + uint8_t* dp = SkMask::AllocImage(dstSize);
|
|
|
| SkAutoTCallVProc<uint8_t, SkMask_FreeImage> autoCall(dp);
|
|
|
| @@ -258,7 +263,11 @@
|
| // the blur into it (applying the src)
|
| if (style == kInner_Style)
|
| {
|
| - dst->fImage = SkMask::AllocImage(src.computeImageSize());
|
| + size_t srcSize = src.computeImageSize();
|
| + if (0 == srcSize) {
|
| + return false; // too big to allocate, abort
|
| + }
|
| + dst->fImage = SkMask::AllocImage(srcSize);
|
| merge_src_with_blur(dst->fImage, sp, sw, sh,
|
| dp + rx + ry*dst->fBounds.width(),
|
| dst->fBounds.width());
|
|
|