| Index: third_party/WebKit/Source/core/paint/TextPainter.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/TextPainter.cpp b/third_party/WebKit/Source/core/paint/TextPainter.cpp
|
| index 274b395f30f443bc2f389e92c5abbd614ea0a6f6..ee7d6657050f10e2999686985deaeb6299327082 100644
|
| --- a/third_party/WebKit/Source/core/paint/TextPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/TextPainter.cpp
|
| @@ -44,15 +44,17 @@ TextPainter::~TextPainter() {}
|
| void TextPainter::setEmphasisMark(const AtomicString& emphasisMark,
|
| TextEmphasisPosition position) {
|
| m_emphasisMark = emphasisMark;
|
| + const SimpleFontData* fontData = m_font.primaryFont();
|
| + DCHECK(fontData);
|
|
|
| - if (emphasisMark.isNull()) {
|
| + if (!fontData || emphasisMark.isNull()) {
|
| m_emphasisMarkOffset = 0;
|
| } else if (position == TextEmphasisPositionOver) {
|
| - m_emphasisMarkOffset = -m_font.getFontMetrics().ascent() -
|
| + m_emphasisMarkOffset = -fontData->getFontMetrics().ascent() -
|
| m_font.emphasisMarkDescent(emphasisMark);
|
| } else {
|
| ASSERT(position == TextEmphasisPositionUnder);
|
| - m_emphasisMarkOffset = m_font.getFontMetrics().descent() +
|
| + m_emphasisMarkOffset = fontData->getFontMetrics().descent() +
|
| m_font.emphasisMarkAscent(emphasisMark);
|
| }
|
| }
|
| @@ -253,11 +255,16 @@ void TextPainter::paintInternal(unsigned startOffset,
|
| }
|
|
|
| void TextPainter::paintEmphasisMarkForCombinedText() {
|
| - ASSERT(m_combinedText);
|
| + const SimpleFontData* fontData = m_font.primaryFont();
|
| + DCHECK(fontData);
|
| + if (!fontData)
|
| + return;
|
| +
|
| + DCHECK(m_combinedText);
|
| TextRun placeholderTextRun(&ideographicFullStopCharacter, 1);
|
| FloatPoint emphasisMarkTextOrigin(m_textBounds.x().toFloat(),
|
| m_textBounds.y().toFloat() +
|
| - m_font.getFontMetrics().ascent() +
|
| + fontData->getFontMetrics().ascent() +
|
| m_emphasisMarkOffset);
|
| TextRunPaintInfo textRunPaintInfo(placeholderTextRun);
|
| textRunPaintInfo.bounds = FloatRect(m_textBounds);
|
|
|