| Index: third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
|
| index 49df4d3ae6b1f70e3d46f869d23637d4588d4080..aa66cc7b89bf6be95c0b58459914bd4b2c9e5ecc 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
|
| @@ -125,7 +125,7 @@ static inline InlineBox* createInlineBoxForLayoutObject(
|
| bool isRootLineBox,
|
| bool isOnlyRun = false) {
|
| // Callers should handle text themselves.
|
| - ASSERT(!lineLayoutItem.isText());
|
| + DCHECK(!lineLayoutItem.isText());
|
|
|
| if (isRootLineBox)
|
| return LineLayoutBlockFlow(lineLayoutItem).createAndAppendRootInlineBox();
|
| @@ -138,7 +138,7 @@ static inline InlineBox* createInlineBoxForLayoutObject(
|
|
|
| static inline InlineTextBox* createInlineBoxForText(BidiRun& run,
|
| bool isOnlyRun) {
|
| - ASSERT(run.m_lineLayoutItem.isText());
|
| + DCHECK(run.m_lineLayoutItem.isText());
|
| LineLayoutText text = LineLayoutText(run.m_lineLayoutItem);
|
| InlineTextBox* textBox =
|
| text.createInlineTextBox(run.m_start, run.m_stop - run.m_start);
|
| @@ -272,7 +272,7 @@ static bool reachedEndOfTextRun(const BidiRunList<BidiRun>& bidiRuns) {
|
|
|
| RootInlineBox* LayoutBlockFlow::constructLine(BidiRunList<BidiRun>& bidiRuns,
|
| const LineInfo& lineInfo) {
|
| - ASSERT(bidiRuns.firstRun());
|
| + DCHECK(bidiRuns.firstRun());
|
|
|
| bool rootHasSelectedChildren = false;
|
| InlineFlowBox* parentBox = nullptr;
|
| @@ -296,7 +296,7 @@ RootInlineBox* LayoutBlockFlow::constructLine(BidiRunList<BidiRun>& bidiRuns,
|
| createInlineBoxForLayoutObject(r->m_lineLayoutItem, false, isOnlyRun);
|
| r->m_box = box;
|
|
|
| - ASSERT(box);
|
| + DCHECK(box);
|
| if (!box)
|
| continue;
|
|
|
| @@ -328,7 +328,8 @@ RootInlineBox* LayoutBlockFlow::constructLine(BidiRunList<BidiRun>& bidiRuns,
|
|
|
| // We should have a root inline box. It should be unconstructed and
|
| // be the last continuation of our line list.
|
| - ASSERT(lastLineBox() && !lastLineBox()->isConstructed());
|
| + DCHECK(lastLineBox());
|
| + DCHECK(!lastLineBox()->isConstructed());
|
|
|
| // Set the m_selectedChildren flag on the root inline box if one of the leaf
|
| // inline box from the bidi runs walk above has a selection state.
|
| @@ -652,19 +653,19 @@ static inline void setLogicalWidthForTextRun(
|
|
|
| run->m_box->setLogicalWidth(LayoutUnit(measuredWidth) + hyphenWidth);
|
| if (!fallbackFonts.isEmpty()) {
|
| - ASSERT(run->m_box->isText());
|
| + DCHECK(run->m_box->isText());
|
| GlyphOverflowAndFallbackFontsMap::ValueType* it =
|
| textBoxDataMap
|
| .insert(toInlineTextBox(run->m_box),
|
| std::make_pair(Vector<const SimpleFontData*>(),
|
| GlyphOverflow()))
|
| .storedValue;
|
| - ASSERT(it->value.first.isEmpty());
|
| + DCHECK(it->value.first.isEmpty());
|
| copyToVector(fallbackFonts, it->value.first);
|
| run->m_box->parent()->clearDescendantsHaveSameLineHeightAndBaseline();
|
| }
|
| if (!glyphOverflow.isApproximatelyZero()) {
|
| - ASSERT(run->m_box->isText());
|
| + DCHECK(run->m_box->isText());
|
| GlyphOverflowAndFallbackFontsMap::ValueType* it =
|
| textBoxDataMap
|
| .insert(toInlineTextBox(run->m_box),
|
| @@ -906,7 +907,7 @@ void LayoutBlockFlow::computeBlockDirectionPositionsForLine(
|
|
|
| // Now make sure we place replaced layout objects correctly.
|
| for (BidiRun* r = firstRun; r; r = r->next()) {
|
| - ASSERT(r->m_box);
|
| + DCHECK(r->m_box);
|
| if (!r->m_box)
|
| continue; // Skip runs with no line boxes.
|
|
|
| @@ -928,7 +929,7 @@ void LayoutBlockFlow::computeBlockDirectionPositionsForLine(
|
|
|
| void LayoutBlockFlow::appendFloatingObjectToLastLine(
|
| FloatingObject& floatingObject) {
|
| - ASSERT(!floatingObject.originatingLine());
|
| + DCHECK(!floatingObject.originatingLine());
|
| floatingObject.setOriginatingLine(lastRootBox());
|
| lastRootBox()->appendFloat(floatingObject.layoutObject());
|
| }
|
| @@ -976,7 +977,7 @@ RootInlineBox* LayoutBlockFlow::createLineBoxesFromBidiRuns(
|
| // contains reversed text or not. If we wouldn't do that editing and thus
|
| // text selection in RTL boxes would not work as expected.
|
| if (isSVGRootInlineBox) {
|
| - ASSERT(isSVGText());
|
| + DCHECK(isSVGText());
|
| toSVGRootInlineBox(lineBox)->computePerCharacterLayoutInformation();
|
| }
|
|
|
| @@ -1052,7 +1053,7 @@ void LayoutBlockFlow::appendFloatsToLastLine(
|
| if (layoutState.lastFloat()) {
|
| FloatingObjectSetIterator lastFloatIterator =
|
| floatingObjectSet.find(layoutState.lastFloat());
|
| - ASSERT(lastFloatIterator != end);
|
| + DCHECK(lastFloatIterator != end);
|
| ++lastFloatIterator;
|
| it = lastFloatIterator;
|
| }
|
| @@ -1073,8 +1074,8 @@ void LayoutBlockFlow::appendFloatsToLastLine(
|
| }
|
| }
|
| appendFloatingObjectToLastLine(floatingObject);
|
| - ASSERT(floatingObject.layoutObject() ==
|
| - layoutState.floats()[layoutState.floatIndex()].object);
|
| + DCHECK_EQ(floatingObject.layoutObject(),
|
| + layoutState.floats()[layoutState.floatIndex()].object);
|
| // If a float's geometry has changed, give up on syncing with clean lines.
|
| if (layoutState.floats()[layoutState.floatIndex()].rect !=
|
| floatingObject.frameRect()) {
|
| @@ -1115,7 +1116,7 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(
|
|
|
| while (!endOfLine.atEnd()) {
|
| // The runs from the previous line should have been cleaned up.
|
| - ASSERT(!resolver.runs().runCount());
|
| + DCHECK(!resolver.runs().runCount());
|
|
|
| // FIXME: Is this check necessary before the first iteration or can it be
|
| // moved to the end?
|
| @@ -1156,12 +1157,12 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(
|
| break;
|
| }
|
|
|
| - ASSERT(endOfLine != resolver.position());
|
| + DCHECK(endOfLine != resolver.position());
|
| RootInlineBox* lineBox = nullptr;
|
|
|
| // This is a short-cut for empty lines.
|
| if (layoutState.lineInfo().isEmpty()) {
|
| - ASSERT(!paginationStrutFromDeletedLine);
|
| + DCHECK(!paginationStrutFromDeletedLine);
|
| if (lastRootBox())
|
| lastRootBox()->setLineBreakInfo(endOfLine.getLineLayoutItem(),
|
| endOfLine.offset(), resolver.status());
|
| @@ -1196,7 +1197,7 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(
|
| constructBidiRunsForLine(
|
| resolver, bidiRuns, endOfLine, override,
|
| layoutState.lineInfo().previousLineBrokeCleanly(), isNewUBAParagraph);
|
| - ASSERT(resolver.position() == endOfLine);
|
| + DCHECK(resolver.position() == endOfLine);
|
|
|
| BidiRun* trailingSpaceRun = resolver.trailingSpaceRun();
|
|
|
| @@ -1220,7 +1221,7 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(
|
|
|
| // If we decided to re-create the line due to pagination, we better have a
|
| // new line now.
|
| - ASSERT(lineBox || !paginationStrutFromDeletedLine);
|
| + DCHECK(lineBox || !paginationStrutFromDeletedLine);
|
|
|
| if (lineBox) {
|
| lineBox->setLineBreakInfo(endOfLine.getLineLayoutItem(),
|
| @@ -1254,10 +1255,10 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(
|
| // so that we can re-apply it when the new line has been
|
| // created.
|
| paginationStrutFromDeletedLine = lineBox->paginationStrut();
|
| - ASSERT(paginationStrutFromDeletedLine);
|
| + DCHECK(paginationStrutFromDeletedLine);
|
| // We're also going to assume that we're right after a page
|
| // break when re-creating this line, so it better be so.
|
| - ASSERT(lineBox->isFirstAfterPageBreak());
|
| + DCHECK(lineBox->isFirstAfterPageBreak());
|
| lineBox->deleteLine();
|
| endOfLine = restartLayoutRunsAndFloatsInRange(
|
| oldLogicalHeight, oldLogicalHeight + adjustment,
|
| @@ -1307,7 +1308,7 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(
|
| }
|
|
|
| // The resolver runs should have been cleared, otherwise they're leaking.
|
| - ASSERT(!resolver.runs().runCount());
|
| + DCHECK(!resolver.runs().runCount());
|
|
|
| // In case we already adjusted the line positions during this layout to avoid
|
| // widows then we need to ignore the possibility of having a new widows
|
| @@ -1398,7 +1399,7 @@ void LayoutBlockFlow::linkToEndLineIfNeeded(LineLayoutState& layoutState) {
|
| if (Vector<LayoutBox*>* cleanLineFloats = line->floatsPtr()) {
|
| for (auto* box : *cleanLineFloats) {
|
| FloatingObject* floatingObject = insertFloatingObject(*box);
|
| - ASSERT(!floatingObject->originatingLine());
|
| + DCHECK(!floatingObject->originatingLine());
|
| floatingObject->setOriginatingLine(line);
|
| LayoutUnit logicalTop =
|
| logicalTopForChild(*box) - marginBeforeForChild(*box) + delta;
|
| @@ -2087,7 +2088,8 @@ RootInlineBox* LayoutBlockFlow::determineStartPosition(
|
|
|
| deleteLineBoxTree();
|
| curr = nullptr;
|
| - ASSERT(!firstLineBox() && !lastLineBox());
|
| + DCHECK(!firstLineBox());
|
| + DCHECK(!lastLineBox());
|
| } else {
|
| if (firstLineBoxWithBreakAndClearance)
|
| curr = firstLineBoxWithBreakAndClearance;
|
| @@ -2124,12 +2126,12 @@ RootInlineBox* LayoutBlockFlow::determineStartPosition(
|
| if (Vector<LayoutBox*>* cleanLineFloats = line->floatsPtr()) {
|
| for (auto* box : *cleanLineFloats) {
|
| FloatingObject* floatingObject = insertFloatingObject(*box);
|
| - ASSERT(!floatingObject->originatingLine());
|
| + DCHECK(!floatingObject->originatingLine());
|
| floatingObject->setOriginatingLine(line);
|
| LayoutUnit logicalTop =
|
| logicalTopForChild(*box) - marginBeforeForChild(*box);
|
| placeNewFloats(logicalTop);
|
| - ASSERT(layoutState.floats()[numCleanFloats].object == box);
|
| + DCHECK_EQ(layoutState.floats()[numCleanFloats].object, box);
|
| numCleanFloats++;
|
| }
|
| }
|
| @@ -2182,7 +2184,7 @@ void LayoutBlockFlow::determineEndPosition(LineLayoutState& layoutState,
|
| RootInlineBox* startLine,
|
| InlineIterator& cleanLineStart,
|
| BidiStatus& cleanLineBidiStatus) {
|
| - ASSERT(!layoutState.endLine());
|
| + DCHECK(!layoutState.endLine());
|
| RootInlineBox* last = nullptr;
|
| for (RootInlineBox* curr = startLine->nextRootBox(); curr;
|
| curr = curr->nextRootBox()) {
|
| @@ -2307,7 +2309,7 @@ bool LayoutBlockFlow::matchedEndLine(LineLayoutState& layoutState,
|
| bool LayoutBlockFlow::generatesLineBoxesForInlineChild(LayoutObject* inlineObj)
|
|
|
| {
|
| - ASSERT(inlineObj->parent() == this);
|
| + DCHECK_EQ(inlineObj->parent(), this);
|
|
|
| InlineIterator it(LineLayoutBlockFlow(this), LineLayoutItem(inlineObj), 0);
|
| // FIXME: We should pass correct value for WhitespacePosition.
|
| @@ -2416,7 +2418,7 @@ void LayoutBlockFlow::checkLinesForTextOverflow() {
|
| ellipsisWidth = (font == firstLineFont) ? firstLineEllipsisWidth : 0;
|
|
|
| if (!ellipsisWidth) {
|
| - ASSERT(font.primaryFont());
|
| + DCHECK(font.primaryFont());
|
| if (font.primaryFont()->glyphForCharacter(horizontalEllipsisCharacter)) {
|
| ellipsisWidth =
|
| font.width(constructTextRun(font, &horizontalEllipsisCharacter, 1,
|
| @@ -2614,7 +2616,7 @@ LayoutUnit LayoutBlockFlow::startAlignedOffsetForLine(
|
| }
|
|
|
| void LayoutBlockFlow::setShouldDoFullPaintInvalidationForFirstLine() {
|
| - ASSERT(childrenInline());
|
| + DCHECK(childrenInline());
|
| if (RootInlineBox* firstRootBox = this->firstRootBox())
|
| firstRootBox->setShouldDoFullPaintInvalidationRecursively();
|
| }
|
|
|