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

Unified Diff: third_party/WebKit/Source/core/layout/line/InlineBox.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/layout/line/InlineBox.cpp
diff --git a/third_party/WebKit/Source/core/layout/line/InlineBox.cpp b/third_party/WebKit/Source/core/layout/line/InlineBox.cpp
index 5bd9c1c4ec001b998851253d24e7bc86cda04aec..9cf7c1914f003d745f6f3daee2ae093911a2cec3 100644
--- a/third_party/WebKit/Source/core/layout/line/InlineBox.cpp
+++ b/third_party/WebKit/Source/core/layout/line/InlineBox.cpp
@@ -146,21 +146,22 @@ LayoutUnit InlineBox::logicalHeight() const {
if (hasVirtualLogicalHeight())
return virtualLogicalHeight();
- if (getLineLayoutItem().isText())
- return m_bitfields.isText() ? LayoutUnit(getLineLayoutItem()
- .style(isFirstLineStyle())
- ->getFontMetrics()
- .height())
- : LayoutUnit();
+ const SimpleFontData* fontData =
+ getLineLayoutItem().style(isFirstLineStyle())->font().primaryFont();
+ if (getLineLayoutItem().isText()) {
+ DCHECK(fontData);
+ return m_bitfields.isText() && fontData
+ ? LayoutUnit(fontData->getFontMetrics().height())
+ : LayoutUnit();
+ }
if (getLineLayoutItem().isBox() && parent())
return isHorizontal() ? LineLayoutBox(getLineLayoutItem()).size().height()
: LineLayoutBox(getLineLayoutItem()).size().width();
ASSERT(isInlineFlowBox());
LineLayoutBoxModel flowObject = boxModelObject();
- const FontMetrics& fontMetrics =
- getLineLayoutItem().style(isFirstLineStyle())->getFontMetrics();
- LayoutUnit result(fontMetrics.height());
+ DCHECK(fontData);
+ LayoutUnit result(fontData ? fontData->getFontMetrics().height() : 0);
if (parent())
result += flowObject.borderAndPaddingLogicalHeight();
return result;

Powered by Google App Engine
This is Rietveld 408576698