| Index: Source/core/layout/LayoutBlockFlowLine.cpp
|
| diff --git a/Source/core/layout/LayoutBlockFlowLine.cpp b/Source/core/layout/LayoutBlockFlowLine.cpp
|
| index a8a63c0d13d331f5898467932211a4019c3a46bf..bbc061951f8f317185ebd0ba03dc4d83c6eeb9c8 100644
|
| --- a/Source/core/layout/LayoutBlockFlowLine.cpp
|
| +++ b/Source/core/layout/LayoutBlockFlowLine.cpp
|
| @@ -611,11 +611,11 @@ void LayoutBlockFlow::computeBlockDirectionPositionsForLine(RootInlineBox* lineB
|
| }
|
| }
|
|
|
| -void LayoutBlockFlow::appendFloatingObjectToLastLine(FloatingObject* floatingObject)
|
| +void LayoutBlockFlow::appendFloatingObjectToLastLine(FloatingObject& floatingObject)
|
| {
|
| - ASSERT(!floatingObject->originatingLine());
|
| - floatingObject->setOriginatingLine(lastRootBox());
|
| - lastRootBox()->appendFloat(floatingObject->layoutObject());
|
| + ASSERT(!floatingObject.originatingLine());
|
| + floatingObject.setOriginatingLine(lastRootBox());
|
| + lastRootBox()->appendFloat(floatingObject.layoutObject());
|
| }
|
|
|
| // This function constructs line boxes for all of the text runs in the resolver and computes their position.
|
| @@ -854,11 +854,11 @@ void LayoutBlockFlow::layoutRunsAndFloatsInRange(LineLayoutState& layoutState,
|
| it = lastFloatIterator;
|
| }
|
| for (; it != end; ++it) {
|
| - FloatingObject* f = it->get();
|
| - appendFloatingObjectToLastLine(f);
|
| - ASSERT(f->layoutObject() == layoutState.floats()[layoutState.floatIndex()].object);
|
| + FloatingObject& floatingObject = *it->get();
|
| + appendFloatingObjectToLastLine(floatingObject);
|
| + ASSERT(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 != f->frameRect())
|
| + if (layoutState.floats()[layoutState.floatIndex()].rect != floatingObject.frameRect())
|
| checkForEndLineMatch = false;
|
| layoutState.setFloatIndex(layoutState.floatIndex() + 1);
|
| }
|
| @@ -1002,7 +1002,7 @@ void LayoutBlockFlow::linkToEndLineIfNeeded(LineLayoutState& layoutState)
|
| }
|
|
|
| for (; it != end; ++it)
|
| - appendFloatingObjectToLastLine(it->get());
|
| + appendFloatingObjectToLastLine(*it->get());
|
| }
|
| }
|
|
|
| @@ -1780,7 +1780,7 @@ bool LayoutBlockFlow::checkPaginationAndFloatsAtEndLine(LineLayoutState& layoutS
|
| const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
|
| FloatingObjectSetIterator end = floatingObjectSet.end();
|
| for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++it) {
|
| - FloatingObject* floatingObject = it->get();
|
| + const FloatingObject& floatingObject = *it->get();
|
| if (logicalBottomForFloat(floatingObject) >= logicalTop && logicalBottomForFloat(floatingObject) < logicalBottom)
|
| return false;
|
| }
|
| @@ -1954,7 +1954,7 @@ void LayoutBlockFlow::checkLinesForTextOverflow()
|
| }
|
| }
|
|
|
| -bool LayoutBlockFlow::positionNewFloatOnLine(FloatingObject* newFloat, FloatingObject* lastFloatFromPreviousLine, LineInfo& lineInfo, LineWidth& width)
|
| +bool LayoutBlockFlow::positionNewFloatOnLine(FloatingObject& newFloat, FloatingObject* lastFloatFromPreviousLine, LineInfo& lineInfo, LineWidth& width)
|
| {
|
| if (!positionNewFloats(&width))
|
| return false;
|
| @@ -1962,14 +1962,14 @@ bool LayoutBlockFlow::positionNewFloatOnLine(FloatingObject* newFloat, FloatingO
|
| // We only connect floats to lines for pagination purposes if the floats occur at the start of
|
| // the line and the previous line had a hard break (so this line is either the first in the block
|
| // or follows a <br>).
|
| - if (!newFloat->paginationStrut() || !lineInfo.previousLineBrokeCleanly() || !lineInfo.isEmpty())
|
| + if (!newFloat.paginationStrut() || !lineInfo.previousLineBrokeCleanly() || !lineInfo.isEmpty())
|
| return true;
|
|
|
| const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
|
| - ASSERT(floatingObjectSet.last() == newFloat);
|
| + ASSERT(floatingObjectSet.last() == &newFloat);
|
|
|
| LayoutUnit floatLogicalTop = logicalTopForFloat(newFloat);
|
| - int paginationStrut = newFloat->paginationStrut();
|
| + int paginationStrut = newFloat.paginationStrut();
|
|
|
| if (floatLogicalTop - paginationStrut != logicalHeight() + lineInfo.floatPaginationStrut())
|
| return true;
|
| @@ -1979,12 +1979,12 @@ bool LayoutBlockFlow::positionNewFloatOnLine(FloatingObject* newFloat, FloatingO
|
| FloatingObjectSetIterator begin = floatingObjectSet.begin();
|
| while (it != begin) {
|
| --it;
|
| - FloatingObject* floatingObject = it->get();
|
| - if (floatingObject == lastFloatFromPreviousLine)
|
| + FloatingObject& floatingObject = *it->get();
|
| + if (&floatingObject == lastFloatFromPreviousLine)
|
| break;
|
| if (logicalTopForFloat(floatingObject) == logicalHeight() + lineInfo.floatPaginationStrut()) {
|
| - floatingObject->setPaginationStrut(paginationStrut + floatingObject->paginationStrut());
|
| - LayoutBox* floatBox = floatingObject->layoutObject();
|
| + floatingObject.setPaginationStrut(paginationStrut + floatingObject.paginationStrut());
|
| + LayoutBox* floatBox = floatingObject.layoutObject();
|
| setLogicalTopForChild(*floatBox, logicalTopForChild(*floatBox) + marginBeforeForChild(*floatBox) + paginationStrut);
|
| if (floatBox->isLayoutBlock())
|
| floatBox->forceChildLayout();
|
|
|