Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
| index 72b8f9124b061f836a7b1b23516f5c7ddc3409a1..18ee44b6a1ad76d5198de0b0d3df7dc9b16af551 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp |
| @@ -2487,11 +2487,15 @@ int LayoutBlockFlow::firstLineBoxBaseline() const { |
| return -1; |
| if (!childrenInline()) |
| return LayoutBlock::firstLineBoxBaseline(); |
| - if (firstLineBox()) |
| + if (firstLineBox()) { |
| + const SimpleFontData* fontData = style(true)->font().primaryFont(); |
| + DCHECK(fontData); |
| + if (!fontData) |
| + return -1; |
|
wkorman
2016/10/13 22:54:30
But I see we use -1 here and a number of cases bel
|
| return (firstLineBox()->logicalTop() + |
| - style(true)->getFontMetrics().ascent( |
| - firstRootBox()->baselineType())) |
| + fontData->getFontMetrics().ascent(firstRootBox()->baselineType())) |
| .toInt(); |
| + } |
| return -1; |
| } |
| @@ -2519,15 +2523,25 @@ int LayoutBlockFlow::inlineBlockBaseline( |
| return -1; |
| if (!childrenInline()) |
| return LayoutBlock::inlineBlockBaseline(lineDirection); |
| - if (lastLineBox()) |
| + if (lastLineBox()) { |
| + const SimpleFontData* fontData = |
| + style(lastLineBox() == firstLineBox())->font().primaryFont(); |
| + DCHECK(fontData); |
| + if (!fontData) |
| + return -1; |
| return (lastLineBox()->logicalTop() + |
| - style(lastLineBox() == firstLineBox()) |
| - ->getFontMetrics() |
| - .ascent(lastRootBox()->baselineType())) |
| + fontData->getFontMetrics().ascent(lastRootBox()->baselineType())) |
| .toInt(); |
| + } |
| if (!hasLineIfEmpty()) |
| return -1; |
| - const FontMetrics& fontMetrics = firstLineStyle()->getFontMetrics(); |
| + |
| + const SimpleFontData* fontData = firstLineStyle()->font().primaryFont(); |
| + DCHECK(fontData); |
| + if (!fontData) |
| + return -1; |
| + |
| + const FontMetrics& fontMetrics = fontData->getFontMetrics(); |
| return (fontMetrics.ascent() + |
| (lineHeight(true, lineDirection, PositionOfInteriorLineBoxes) - |
| fontMetrics.height()) / |