diff options
-rw-r--r-- | src/core/SkTextBlob.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/core/SkTextBlob.cpp b/src/core/SkTextBlob.cpp index 4ba7df8a7d..d1a77e74f7 100644 --- a/src/core/SkTextBlob.cpp +++ b/src/core/SkTextBlob.cpp @@ -382,16 +382,7 @@ SkRect SkTextBlobBuilder::ConservativeRunBounds(const SkTextBlob::RunRecord& run SkASSERT(SkTextBlob::kFull_Positioning == run.positioning() || SkTextBlob::kHorizontal_Positioning == run.positioning()); - SkPaint paint; - run.font().applyToPaint(&paint); - const SkRect fontBounds = paint.getFontBounds(); - if (fontBounds.isEmpty()) { - // Empty font bounds are likely a font bug. TightBounds has a better chance of - // producing useful results in this case. - return TightRunBounds(run); - } - - // Compute the glyph position bbox. + // First, compute the glyph position bbox. SkRect bounds; switch (run.positioning()) { case SkTextBlob::kHorizontal_Positioning: { @@ -419,6 +410,9 @@ SkRect SkTextBlobBuilder::ConservativeRunBounds(const SkTextBlob::RunRecord& run } // Expand by typeface glyph bounds. + SkPaint paint; + run.font().applyToPaint(&paint); + const SkRect fontBounds = paint.getFontBounds(); bounds.fLeft += fontBounds.left(); bounds.fTop += fontBounds.top(); bounds.fRight += fontBounds.right(); |