| Index: third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp b/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
|
| index 53d93e8805c9a3c10bc5ebcdc2ba6be6b39108c9..ba4d6d4a47c43bbf576db21a28f2d04e17dbe1bf 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
|
| @@ -122,7 +122,7 @@ static inline bool hasAnyColumnSpanners(
|
| static LayoutObject* nextInPreOrderAfterChildrenSkippingOutOfFlow(
|
| LayoutMultiColumnFlowThread* flowThread,
|
| LayoutObject* descendant) {
|
| - ASSERT(descendant->isDescendantOf(flowThread));
|
| + DCHECK(descendant->isDescendantOf(flowThread));
|
| LayoutObject* object = descendant->nextInPreOrderAfterChildren(flowThread);
|
| while (object) {
|
| // Walk through the siblings and find the first one which is either in-flow
|
| @@ -143,7 +143,7 @@ static LayoutObject* nextInPreOrderAfterChildrenSkippingOutOfFlow(
|
| // Make sure that we didn't stumble into an inner multicol container.
|
| for (LayoutObject* walker = object->parent(); walker && walker != flowThread;
|
| walker = walker->parent())
|
| - ASSERT(!isMultiColumnContainer(*walker));
|
| + DCHECK(!isMultiColumnContainer(*walker));
|
| #endif
|
| return object;
|
| }
|
| @@ -153,7 +153,7 @@ static LayoutObject* nextInPreOrderAfterChildrenSkippingOutOfFlow(
|
| static LayoutObject* previousInPreOrderSkippingOutOfFlow(
|
| LayoutMultiColumnFlowThread* flowThread,
|
| LayoutObject* descendant) {
|
| - ASSERT(descendant->isDescendantOf(flowThread));
|
| + DCHECK(descendant->isDescendantOf(flowThread));
|
| LayoutObject* object = descendant->previousInPreOrder(flowThread);
|
| while (object && object != flowThread) {
|
| if (object->isColumnSpanAll()) {
|
| @@ -164,7 +164,7 @@ static LayoutObject* previousInPreOrderSkippingOutOfFlow(
|
| // We're inside an inner multicol container. We have no business there.
|
| // Continue on the outside.
|
| object = placeholderFlowThread->parent();
|
| - ASSERT(object->isDescendantOf(flowThread));
|
| + DCHECK(object->isDescendantOf(flowThread));
|
| continue;
|
| }
|
| if (object->flowThreadContainingBlock() == flowThread) {
|
| @@ -179,7 +179,7 @@ static LayoutObject* previousInPreOrderSkippingOutOfFlow(
|
| }
|
| }
|
| object = ancestor;
|
| - ASSERT(ancestor->isDescendantOf(flowThread));
|
| + DCHECK(ancestor->isDescendantOf(flowThread));
|
| continue; // Continue on the outside of the inner flow thread.
|
| }
|
| // We're inside something that's out-of-flow. Keep looking upwards and
|
| @@ -192,7 +192,7 @@ static LayoutObject* previousInPreOrderSkippingOutOfFlow(
|
| // Make sure that we didn't stumble into an inner multicol container.
|
| for (LayoutObject* walker = object->parent(); walker && walker != flowThread;
|
| walker = walker->parent())
|
| - ASSERT(!isMultiColumnContainer(*walker));
|
| + DCHECK(!isMultiColumnContainer(*walker));
|
| #endif
|
| return object;
|
| }
|
| @@ -203,7 +203,7 @@ static LayoutObject* firstLayoutObjectInSet(LayoutMultiColumnSet* multicolSet) {
|
| return multicolSet->flowThread()->firstChild();
|
| // Adjacent column content sets should not occur. We would have no way of
|
| // figuring out what each of them contains then.
|
| - ASSERT(sibling->isLayoutMultiColumnSpannerPlaceholder());
|
| + DCHECK(sibling->isLayoutMultiColumnSpannerPlaceholder());
|
| LayoutBox* spanner = toLayoutMultiColumnSpannerPlaceholder(sibling)
|
| ->layoutObjectInFlowThread();
|
| return nextInPreOrderAfterChildrenSkippingOutOfFlow(
|
| @@ -218,7 +218,7 @@ static LayoutObject* lastLayoutObjectInSet(LayoutMultiColumnSet* multicolSet) {
|
| return nullptr;
|
| // Adjacent column content sets should not occur. We would have no way of
|
| // figuring out what each of them contains then.
|
| - ASSERT(sibling->isLayoutMultiColumnSpannerPlaceholder());
|
| + DCHECK(sibling->isLayoutMultiColumnSpannerPlaceholder());
|
| LayoutBox* spanner = toLayoutMultiColumnSpannerPlaceholder(sibling)
|
| ->layoutObjectInFlowThread();
|
| return previousInPreOrderSkippingOutOfFlow(
|
| @@ -229,11 +229,11 @@ LayoutMultiColumnSet* LayoutMultiColumnFlowThread::mapDescendantToColumnSet(
|
| LayoutObject* layoutObject) const {
|
| // Should not be used for spanners or content inside them.
|
| DCHECK(!containingColumnSpannerPlaceholder(layoutObject));
|
| - DCHECK(layoutObject != this);
|
| + DCHECK_NE(layoutObject, this);
|
| DCHECK(layoutObject->isDescendantOf(this));
|
| // Out-of-flow objects don't belong in column sets.
|
| DCHECK(layoutObject->containingBlock()->isDescendantOf(this));
|
| - DCHECK(layoutObject->flowThreadContainingBlock() == this);
|
| + DCHECK_EQ(layoutObject->flowThreadContainingBlock(), this);
|
| DCHECK(!layoutObject->isLayoutMultiColumnSet());
|
| DCHECK(!layoutObject->isLayoutMultiColumnSpannerPlaceholder());
|
| LayoutMultiColumnSet* multicolSet = firstMultiColumnSet();
|
| @@ -248,7 +248,7 @@ LayoutMultiColumnSet* LayoutMultiColumnFlowThread::mapDescendantToColumnSet(
|
| for (; multicolSet; multicolSet = multicolSet->nextSiblingMultiColumnSet()) {
|
| LayoutObject* firstLayoutObject = firstLayoutObjectInSet(multicolSet);
|
| LayoutObject* lastLayoutObject = lastLayoutObjectInSet(multicolSet);
|
| - ASSERT(firstLayoutObject);
|
| + DCHECK(firstLayoutObject);
|
|
|
| for (LayoutObject* walker = firstLayoutObject; walker;
|
| walker = walker->nextInPreOrder(this)) {
|
| @@ -265,7 +265,7 @@ LayoutMultiColumnSet* LayoutMultiColumnFlowThread::mapDescendantToColumnSet(
|
| LayoutMultiColumnSpannerPlaceholder*
|
| LayoutMultiColumnFlowThread::containingColumnSpannerPlaceholder(
|
| const LayoutObject* descendant) const {
|
| - ASSERT(descendant->isDescendantOf(this));
|
| + DCHECK(descendant->isDescendantOf(this));
|
|
|
| if (!hasAnyColumnSpanners(*this))
|
| return nullptr;
|
| @@ -283,7 +283,7 @@ LayoutMultiColumnFlowThread::containingColumnSpannerPlaceholder(
|
|
|
| void LayoutMultiColumnFlowThread::populate() {
|
| LayoutBlockFlow* multicolContainer = multiColumnBlockFlow();
|
| - ASSERT(!nextSibling());
|
| + DCHECK(!nextSibling());
|
| // Reparent children preceding the flow thread into the flow thread. It's
|
| // multicol content now. At this point there's obviously nothing after the
|
| // flow thread, but layoutObjects (column sets and spanners) will be inserted
|
| @@ -299,12 +299,12 @@ void LayoutMultiColumnFlowThread::evacuateAndDestroy() {
|
|
|
| // Remove all sets and spanners.
|
| while (LayoutBox* columnBox = firstMultiColumnBox()) {
|
| - ASSERT(columnBox->isAnonymous());
|
| + DCHECK(columnBox->isAnonymous());
|
| columnBox->destroy();
|
| }
|
|
|
| - ASSERT(!previousSibling());
|
| - ASSERT(!nextSibling());
|
| + DCHECK(!previousSibling());
|
| + DCHECK(!nextSibling());
|
|
|
| // Finally we can promote all flow thread's children. Before we move them to
|
| // the flow thread's container, we need to unregister the flow thread, so that
|
| @@ -315,7 +315,7 @@ void LayoutMultiColumnFlowThread::evacuateAndDestroy() {
|
|
|
| // We used to manually nuke the line box tree here, but that should happen
|
| // automatically when moving children around (the code above).
|
| - ASSERT(!firstLineBox());
|
| + DCHECK(!firstLineBox());
|
|
|
| destroy();
|
| }
|
| @@ -577,13 +577,13 @@ void LayoutMultiColumnFlowThread::columnRuleStyleDidChange() {
|
|
|
| bool LayoutMultiColumnFlowThread::removeSpannerPlaceholderIfNoLongerValid(
|
| LayoutBox* spannerObjectInFlowThread) {
|
| - ASSERT(spannerObjectInFlowThread->spannerPlaceholder());
|
| + DCHECK(spannerObjectInFlowThread->spannerPlaceholder());
|
| if (descendantIsValidColumnSpanner(spannerObjectInFlowThread))
|
| return false; // Still a valid spanner.
|
|
|
| // No longer a valid spanner. Get rid of the placeholder.
|
| destroySpannerPlaceholder(spannerObjectInFlowThread->spannerPlaceholder());
|
| - ASSERT(!spannerObjectInFlowThread->spannerPlaceholder());
|
| + DCHECK(!spannerObjectInFlowThread->spannerPlaceholder());
|
|
|
| // We may have a new containing block, since we're no longer a spanner. Mark
|
| // it for relayout.
|
| @@ -670,7 +670,7 @@ void LayoutMultiColumnFlowThread::appendNewFragmentainerGroupIfNeeded(
|
| columnSet->appendNewFragmentainerGroup();
|
| // Zero-height rows should really not occur here, but if it does anyway,
|
| // break, so that we don't get stuck in an infinite loop.
|
| - ASSERT(newRow.logicalHeight() > 0);
|
| + DCHECK_GT(newRow.logicalHeight(), 0);
|
| if (newRow.logicalHeight() <= 0)
|
| break;
|
| } while (columnSet->needsNewFragmentainerGroupAt(offsetInFlowThread,
|
| @@ -728,7 +728,7 @@ void LayoutMultiColumnFlowThread::calculateColumnCountAndWidth(
|
| max(LayoutUnit(1), LayoutUnit(columnStyle->columnWidth()));
|
| unsigned computedColumnCount = max<int>(1, columnStyle->columnCount());
|
|
|
| - ASSERT(!columnStyle->hasAutoColumnCount() ||
|
| + DCHECK(!columnStyle->hasAutoColumnCount() ||
|
| !columnStyle->hasAutoColumnWidth());
|
| if (columnStyle->hasAutoColumnWidth() && !columnStyle->hasAutoColumnCount()) {
|
| count = computedColumnCount;
|
| @@ -760,9 +760,9 @@ void LayoutMultiColumnFlowThread::createAndInsertMultiColumnSet(
|
|
|
| // We cannot handle immediate column set siblings (and there's no need for it,
|
| // either). There has to be at least one spanner separating them.
|
| - ASSERT(!newSet->previousSiblingMultiColumnBox() ||
|
| + DCHECK(!newSet->previousSiblingMultiColumnBox() ||
|
| !newSet->previousSiblingMultiColumnBox()->isLayoutMultiColumnSet());
|
| - ASSERT(!newSet->nextSiblingMultiColumnBox() ||
|
| + DCHECK(!newSet->nextSiblingMultiColumnBox() ||
|
| !newSet->nextSiblingMultiColumnBox()->isLayoutMultiColumnSet());
|
| }
|
|
|
| @@ -796,22 +796,22 @@ void LayoutMultiColumnFlowThread::createAndInsertSpannerPlaceholder(
|
| // column set this is. It needs to be split it into two sets, so that we
|
| // can insert a new spanner placeholder between them.
|
| setToSplit = mapDescendantToColumnSet(previousLayoutObject);
|
| - ASSERT(setToSplit ==
|
| - mapDescendantToColumnSet(insertedBeforeInFlowThread));
|
| + DCHECK_EQ(setToSplit,
|
| + mapDescendantToColumnSet(insertedBeforeInFlowThread));
|
| insertBeforeColumnBox = setToSplit->nextSiblingMultiColumnBox();
|
| // We've found out which set that needs to be split. Now proceed to
|
| // inserting the spanner placeholder, and then insert a second column
|
| // set.
|
| }
|
| }
|
| - ASSERT(setToSplit || insertBeforeColumnBox);
|
| + DCHECK(setToSplit || insertBeforeColumnBox);
|
| }
|
|
|
| LayoutBlockFlow* multicolContainer = multiColumnBlockFlow();
|
| LayoutMultiColumnSpannerPlaceholder* newPlaceholder =
|
| LayoutMultiColumnSpannerPlaceholder::createAnonymous(
|
| multicolContainer->styleRef(), *spannerObjectInFlowThread);
|
| - ASSERT(!insertBeforeColumnBox ||
|
| + DCHECK(!insertBeforeColumnBox ||
|
| insertBeforeColumnBox->parent() == multicolContainer);
|
| multicolContainer->LayoutBlock::addChild(newPlaceholder,
|
| insertBeforeColumnBox);
|
| @@ -849,7 +849,7 @@ bool LayoutMultiColumnFlowThread::descendantIsValidColumnSpanner(
|
|
|
| // We assume that we're inside the flow thread. This function is not to be
|
| // called otherwise.
|
| - ASSERT(descendant->isDescendantOf(this));
|
| + DCHECK(descendant->isDescendantOf(this));
|
|
|
| // The spec says that column-span only applies to in-flow block-level
|
| // elements.
|
| @@ -869,7 +869,7 @@ bool LayoutMultiColumnFlowThread::descendantIsValidColumnSpanner(
|
| for (LayoutBox* ancestor = toLayoutBox(descendant)->parentBox(); ancestor;
|
| ancestor = ancestor->containingBlock()) {
|
| if (ancestor->isLayoutFlowThread()) {
|
| - ASSERT(ancestor == this);
|
| + DCHECK_EQ(ancestor, this);
|
| return true;
|
| }
|
| if (!canContainSpannerInParentFragmentationContext(*ancestor))
|
| @@ -883,7 +883,7 @@ void LayoutMultiColumnFlowThread::addColumnSetToThread(
|
| LayoutMultiColumnSet* columnSet) {
|
| if (LayoutMultiColumnSet* nextSet = columnSet->nextSiblingMultiColumnSet()) {
|
| LayoutMultiColumnSetList::iterator it = m_multiColumnSetList.find(nextSet);
|
| - ASSERT(it != m_multiColumnSetList.end());
|
| + DCHECK(it != m_multiColumnSetList.end());
|
| m_multiColumnSetList.insertBefore(it, columnSet);
|
| } else {
|
| m_multiColumnSetList.insert(columnSet);
|
| @@ -904,7 +904,7 @@ void LayoutMultiColumnFlowThread::willBeRemovedFromTree() {
|
| void LayoutMultiColumnFlowThread::skipColumnSpanner(
|
| LayoutBox* layoutObject,
|
| LayoutUnit logicalTopInFlowThread) {
|
| - ASSERT(layoutObject->isColumnSpanAll());
|
| + DCHECK(layoutObject->isColumnSpanAll());
|
| LayoutMultiColumnSpannerPlaceholder* placeholder =
|
| layoutObject->spannerPlaceholder();
|
| LayoutBox* previousColumnBox = placeholder->previousSiblingMultiColumnBox();
|
| @@ -966,7 +966,7 @@ static bool shouldSkipInsertedOrRemovedChild(
|
|
|
| void LayoutMultiColumnFlowThread::flowThreadDescendantWasInserted(
|
| LayoutObject* descendant) {
|
| - ASSERT(!m_isBeingEvacuated);
|
| + DCHECK(!m_isBeingEvacuated);
|
| // This method ensures that the list of column sets and spanner placeholders
|
| // reflects the multicol content after having inserted a descendant (or
|
| // descendant subtree). See the header file for more information. Go through
|
| @@ -1009,9 +1009,9 @@ void LayoutMultiColumnFlowThread::flowThreadDescendantWasInserted(
|
| // Otherwise, since |objectAfterSubtree| isn't a spanner, it has to mean
|
| // that there's already a set for that content. We can use it for this
|
| // layoutObject too.
|
| - ASSERT(mapDescendantToColumnSet(objectAfterSubtree));
|
| - ASSERT(mapDescendantToColumnSet(layoutObject) ==
|
| - mapDescendantToColumnSet(objectAfterSubtree));
|
| + DCHECK(mapDescendantToColumnSet(objectAfterSubtree));
|
| + DCHECK_EQ(mapDescendantToColumnSet(layoutObject),
|
| + mapDescendantToColumnSet(objectAfterSubtree));
|
| }
|
| } else {
|
| // Inserting at the end. Then we just need to make sure that there's a
|
| @@ -1090,7 +1090,7 @@ void LayoutMultiColumnFlowThread::flowThreadDescendantWillBeRemoved(
|
| if (adjacentNextSpannerPlaceholder) {
|
| columnSetToRemove = toLayoutMultiColumnSet(
|
| adjacentNextSpannerPlaceholder->previousSiblingMultiColumnBox());
|
| - ASSERT(!adjacentPreviousSpannerPlaceholder ||
|
| + DCHECK(!adjacentPreviousSpannerPlaceholder ||
|
| columnSetToRemove ==
|
| adjacentPreviousSpannerPlaceholder->nextSiblingMultiColumnBox());
|
| } else if (adjacentPreviousSpannerPlaceholder) {
|
| @@ -1101,10 +1101,10 @@ void LayoutMultiColumnFlowThread::flowThreadDescendantWillBeRemoved(
|
| // column set, since it's only spanners that may cause creation of
|
| // multiple sets.
|
| columnSetToRemove = firstMultiColumnSet();
|
| - ASSERT(columnSetToRemove);
|
| - ASSERT(!columnSetToRemove->nextSiblingMultiColumnSet());
|
| + DCHECK(columnSetToRemove);
|
| + DCHECK(!columnSetToRemove->nextSiblingMultiColumnSet());
|
| }
|
| - ASSERT(columnSetToRemove);
|
| + DCHECK(columnSetToRemove);
|
| columnSetToRemove->destroy();
|
| }
|
|
|
| @@ -1177,7 +1177,7 @@ void LayoutMultiColumnFlowThread::flowThreadDescendantStyleDidChange(
|
| }
|
| if (descendantIsValidColumnSpanner(descendant)) {
|
| // We went from being regular column content to becoming a spanner.
|
| - ASSERT(!descendant->spannerPlaceholder());
|
| + DCHECK(!descendant->spannerPlaceholder());
|
|
|
| // First remove this as regular column content. Note that this will walk the
|
| // entire subtree of |descendant|. There might be spanners there (which
|
| @@ -1197,7 +1197,7 @@ void LayoutMultiColumnFlowThread::flowThreadDescendantStyleDidChange(
|
| // Make sure that we were preceded by a call to
|
| // flowThreadDescendantStyleWillChange() with the same descendant as we have
|
| // now.
|
| - DCHECK(s_styleChangedBox == descendant);
|
| + DCHECK_EQ(s_styleChangedBox, descendant);
|
| #endif
|
|
|
| if (s_couldContainSpanners !=
|
| @@ -1207,8 +1207,8 @@ void LayoutMultiColumnFlowThread::flowThreadDescendantStyleDidChange(
|
|
|
| void LayoutMultiColumnFlowThread::toggleSpannersInSubtree(
|
| LayoutBox* descendant) {
|
| - DCHECK(s_couldContainSpanners !=
|
| - canContainSpannerInParentFragmentationContext(*descendant));
|
| + DCHECK_NE(s_couldContainSpanners,
|
| + canContainSpannerInParentFragmentationContext(*descendant));
|
|
|
| // If there are no spanners at all in this multicol container, there's no
|
| // need to look for any to remove.
|
| @@ -1301,13 +1301,13 @@ void LayoutMultiColumnFlowThread::updateLogicalWidth() {
|
| }
|
|
|
| void LayoutMultiColumnFlowThread::layout() {
|
| - ASSERT(!m_lastSetWorkedOn);
|
| + DCHECK(!m_lastSetWorkedOn);
|
| m_lastSetWorkedOn = firstMultiColumnSet();
|
| if (m_lastSetWorkedOn)
|
| m_lastSetWorkedOn->beginFlow(LayoutUnit());
|
| LayoutFlowThread::layout();
|
| if (LayoutMultiColumnSet* lastSet = lastMultiColumnSet()) {
|
| - ASSERT(lastSet == m_lastSetWorkedOn);
|
| + DCHECK_EQ(lastSet, m_lastSetWorkedOn);
|
| if (!lastSet->nextSiblingMultiColumnSet()) {
|
| // Include trailing overflow in the last column set (also if the last set
|
| // is followed by one or more spanner placeholders). The idea is that we
|
| @@ -1320,7 +1320,7 @@ void LayoutMultiColumnFlowThread::layout() {
|
| LayoutRect layoutRect = layoutOverflowRect();
|
| LayoutUnit logicalBottomInFlowThread =
|
| isHorizontalWritingMode() ? layoutRect.maxY() : layoutRect.maxX();
|
| - ASSERT(logicalBottomInFlowThread >= logicalHeight());
|
| + DCHECK_GE(logicalBottomInFlowThread, logicalHeight());
|
| lastSet->endFlow(logicalBottomInFlowThread);
|
| }
|
| }
|
|
|