| Index: Source/core/rendering/RenderBlockLineLayout.cpp
|
| diff --git a/Source/core/rendering/RenderBlockLineLayout.cpp b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| index 8a212c0b9d59cf930f25ce4a7778be9c40bd5576..8a1ca719dad74f47d2ad98f9bdec7030c4314494 100644
|
| --- a/Source/core/rendering/RenderBlockLineLayout.cpp
|
| +++ b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| @@ -669,11 +669,11 @@ void RenderBlockFlow::computeBlockDirectionPositionsForLine(RootInlineBox* lineB
|
| }
|
| }
|
|
|
| -void RenderBlockFlow::appendFloatingObjectToLastLine(FloatingObject* floatingObject)
|
| +void RenderBlockFlow::appendFloatingObjectToLastLine(FloatingObject& floatingObject)
|
| {
|
| - ASSERT(!floatingObject->originatingLine());
|
| - floatingObject->setOriginatingLine(lastRootBox());
|
| - lastRootBox()->appendFloat(floatingObject->renderer());
|
| + ASSERT(!floatingObject.originatingLine());
|
| + floatingObject.setOriginatingLine(lastRootBox());
|
| + lastRootBox()->appendFloat(floatingObject.renderer());
|
| }
|
|
|
| // This function constructs line boxes for all of the text runs in the resolver and computes their position.
|
| @@ -913,7 +913,7 @@ void RenderBlockFlow::layoutRunsAndFloatsInRange(LineLayoutState& layoutState,
|
| }
|
| for (; it != end; ++it) {
|
| FloatingObject* f = it->get();
|
| - appendFloatingObjectToLastLine(f);
|
| + appendFloatingObjectToLastLine(*f);
|
| ASSERT(f->renderer() == 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())
|
| @@ -1061,7 +1061,7 @@ void RenderBlockFlow::linkToEndLineIfNeeded(LineLayoutState& layoutState)
|
| }
|
|
|
| for (; it != end; ++it)
|
| - appendFloatingObjectToLastLine(it->get());
|
| + appendFloatingObjectToLastLine(*it->get());
|
| }
|
| }
|
|
|
| @@ -1842,7 +1842,7 @@ bool RenderBlockFlow::checkPaginationAndFloatsAtEndLine(LineLayoutState& layoutS
|
| FloatingObjectSetIterator end = floatingObjectSet.end();
|
| for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++it) {
|
| FloatingObject* floatingObject = it->get();
|
| - if (logicalBottomForFloat(floatingObject) >= logicalTop && logicalBottomForFloat(floatingObject) < logicalBottom)
|
| + if (logicalBottomForFloat(*floatingObject) >= logicalTop && logicalBottomForFloat(*floatingObject) < logicalBottom)
|
| return false;
|
| }
|
|
|
| @@ -2000,7 +2000,7 @@ bool RenderBlockFlow::positionNewFloatOnLine(FloatingObject* newFloat, FloatingO
|
| const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
|
| ASSERT(floatingObjectSet.last() == newFloat);
|
|
|
| - LayoutUnit floatLogicalTop = logicalTopForFloat(newFloat);
|
| + LayoutUnit floatLogicalTop = logicalTopForFloat(*newFloat);
|
| int paginationStrut = newFloat->paginationStrut();
|
|
|
| if (floatLogicalTop - paginationStrut != logicalHeight() + lineInfo.floatPaginationStrut())
|
| @@ -2014,7 +2014,7 @@ bool RenderBlockFlow::positionNewFloatOnLine(FloatingObject* newFloat, FloatingO
|
| FloatingObject* floatingObject = it->get();
|
| if (floatingObject == lastFloatFromPreviousLine)
|
| break;
|
| - if (logicalTopForFloat(floatingObject) == logicalHeight() + lineInfo.floatPaginationStrut()) {
|
| + if (logicalTopForFloat(*floatingObject) == logicalHeight() + lineInfo.floatPaginationStrut()) {
|
| floatingObject->setPaginationStrut(paginationStrut + floatingObject->paginationStrut());
|
| RenderBox* floatBox = floatingObject->renderer();
|
| setLogicalTopForChild(*floatBox, logicalTopForChild(*floatBox) + marginBeforeForChild(*floatBox) + paginationStrut);
|
| @@ -2024,9 +2024,9 @@ bool RenderBlockFlow::positionNewFloatOnLine(FloatingObject* newFloat, FloatingO
|
| floatBox->layoutIfNeeded();
|
| // Save the old logical top before calling removePlacedObject which will set
|
| // isPlaced to false. Otherwise it will trigger an assert in logicalTopForFloat.
|
| - LayoutUnit oldLogicalTop = logicalTopForFloat(floatingObject);
|
| + LayoutUnit oldLogicalTop = logicalTopForFloat(*floatingObject);
|
| m_floatingObjects->removePlacedObject(floatingObject);
|
| - setLogicalTopForFloat(floatingObject, oldLogicalTop + paginationStrut);
|
| + setLogicalTopForFloat(*floatingObject, oldLogicalTop + paginationStrut);
|
| m_floatingObjects->addPlacedObject(floatingObject);
|
| }
|
| }
|
|
|