From 9a136cdf89222c11b0dae86e19ff0b14956f929a Mon Sep 17 00:00:00 2001 From: "deanm@chromium.org" Date: Thu, 30 Apr 2009 12:50:58 +0000 Subject: Integrate change of Skia upstream. This is a cherry-pick of the following change: http://code.google.com/p/skia/source/detail?r=159 We introduce this change for the 'lighter' composite operation. We need kAdd_Mode, which is introduced in this change for the operation. Patch by Shinichiro Hamaji. BUG=1619 Review URL: http://codereview.chromium.org/93093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14938 0039d316-1c4b-4281-b951-d872f2087c98 --- skia/effects/SkBlurMask.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'skia/effects/SkBlurMask.cpp') diff --git a/skia/effects/SkBlurMask.cpp b/skia/effects/SkBlurMask.cpp index a7b3202..d60288b 100644 --- a/skia/effects/SkBlurMask.cpp +++ b/skia/effects/SkBlurMask.cpp @@ -234,10 +234,15 @@ bool SkBlurMask::Blur(SkMask* dst, const SkMask& src, 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 autoCall(dp); @@ -258,7 +263,11 @@ bool SkBlurMask::Blur(SkMask* dst, const SkMask& src, // 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()); -- cgit v1.1