aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkScalerContext.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-09-21 17:38:06 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-09-21 17:38:06 +0000
commit8136d58161c3fa314af42f5c65682be855dfec1b (patch)
treee1a45fcd4a61c9e7dfdc832a9d4a0f503729bdcc /src/core/SkScalerContext.cpp
parentc544325fdb7148b5cbcf199325b137e814ea457f (diff)
check for very large blurs, and don't try to cache the result in fontcache
Diffstat (limited to 'src/core/SkScalerContext.cpp')
-rw-r--r--src/core/SkScalerContext.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp
index 59b7771ac4..86bb7c900f 100644
--- a/src/core/SkScalerContext.cpp
+++ b/src/core/SkScalerContext.cpp
@@ -315,6 +315,9 @@ void SkScalerContext::getMetrics(SkGlyph* glyph) {
src.fImage = NULL; // only want the bounds from the filter
if (fMaskFilter->filterMask(&dst, src, matrix, NULL)) {
+ if (dst.fBounds.isEmpty() || !dst.fBounds.is16Bit()) {
+ goto SK_ERROR;
+ }
SkASSERT(dst.fImage == NULL);
glyph->fLeft = dst.fBounds.fLeft;
glyph->fTop = dst.fBounds.fTop;