Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(579)

Unified Diff: third_party/WebKit/Source/core/paint/TextPainter.cpp

Issue 2416033003: Remove unsafe getFontMetrics methods (Closed)
Patch Set: Address wkroman suggestions Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp ('k') | third_party/WebKit/Source/core/style/ComputedStyle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698