Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1010)

Unified Diff: Source/core/rendering/RenderBlockFlow.cpp

Issue 752723004: Use references in RenderBlock and RenderBlockFlow methods (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderBlockFlow.cpp
diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp
index 55be9e9fe8ba4a7b2baa29fe8362ce55903936a1..6448eb7fd11cf9f84c8198ba2d7bcbccdfd141e5 100644
--- a/Source/core/rendering/RenderBlockFlow.cpp
+++ b/Source/core/rendering/RenderBlockFlow.cpp
@@ -509,12 +509,12 @@ void RenderBlockFlow::determineLogicalLeftPositionForChild(RenderBox* child)
startPosition -= verticalScrollbarWidth();
LayoutUnit totalAvailableLogicalWidth = borderAndPaddingLogicalWidth() + availableLogicalWidth();
- LayoutUnit childMarginStart = marginStartForChild(child);
+ LayoutUnit childMarginStart = marginStartForChild(*child);
Julien - ping for review 2014/11/26 18:52:35 It seems like the function could also use a refere
LayoutUnit newPosition = startPosition + childMarginStart;
LayoutUnit positionToAvoidFloats;
if (child->avoidsFloats() && containsFloats() && !flowThreadContainingBlock())
- positionToAvoidFloats = startOffsetForLine(logicalTopForChild(child), false, logicalHeightForChild(child));
+ positionToAvoidFloats = startOffsetForLine(logicalTopForChild(*child), false, logicalHeightForChild(*child));
// If the child has an offset from the content edge to avoid floats then use that, otherwise let any negative
// margin pull it back over the content edge or any positive margin push it out.
@@ -525,7 +525,7 @@ void RenderBlockFlow::determineLogicalLeftPositionForChild(RenderBox* child)
else if (positionToAvoidFloats > initialStartPosition)
newPosition = std::max(newPosition, positionToAvoidFloats);
- setLogicalLeftForChild(child, style()->isLeftToRightDirection() ? newPosition : totalAvailableLogicalWidth - newPosition - logicalWidthForChild(child));
+ setLogicalLeftForChild(child, style()->isLeftToRightDirection() ? newPosition : totalAvailableLogicalWidth - newPosition - logicalWidthForChild(*child));
}
void RenderBlockFlow::setLogicalLeftForChild(RenderBox* child, LayoutUnit logicalLeft)
@@ -562,7 +562,7 @@ void RenderBlockFlow::layoutBlockChild(RenderBox* child, MarginInfo& marginInfo,
// Cache our old rect so that we can dirty the proper paint invalidation rects if the child moves.
LayoutRect oldRect = child->frameRect();
- LayoutUnit oldLogicalTop = logicalTopForChild(child);
+ LayoutUnit oldLogicalTop = logicalTopForChild(*child);
Julien - ping for review 2014/11/26 18:52:35 Same comment.
// Go ahead and position the child as though it didn't collapse with the top.
setLogicalTopForChild(child, logicalTopEstimate);
@@ -660,9 +660,9 @@ void RenderBlockFlow::layoutBlockChild(RenderBox* child, MarginInfo& marginInfo,
LayoutSize childOffset = child->location() - oldRect.location();
// Update our height now that the child has been placed in the correct position.
- setLogicalHeight(logicalHeight() + logicalHeightForChild(child));
+ setLogicalHeight(logicalHeight() + logicalHeightForChild(*child));
if (mustSeparateMarginAfterForChild(child)) {
- setLogicalHeight(logicalHeight() + marginAfterForChild(child));
+ setLogicalHeight(logicalHeight() + marginAfterForChild(*child));
marginInfo.clearMargin();
}
// If the child has overhanging floats that intrude into following siblings (or possibly out
@@ -873,7 +873,7 @@ LayoutUnit RenderBlockFlow::adjustForUnsplittableChild(RenderBox* child, LayoutU
|| (checkPageBreaks && child->style()->pageBreakInside() == PBAVOID);
if (!isUnsplittable)
return logicalOffset;
- LayoutUnit childLogicalHeight = logicalHeightForChild(child) + (includeMargins ? marginBeforeForChild(child) + marginAfterForChild(child) : LayoutUnit());
+ LayoutUnit childLogicalHeight = logicalHeightForChild(*child) + (includeMargins ? marginBeforeForChild(*child) + marginAfterForChild(*child) : LayoutUnit());
LayoutUnit pageLogicalHeight = pageLogicalHeightForOffset(logicalOffset);
updateMinimumPageHeight(logicalOffset, childLogicalHeight);
if (!pageLogicalHeight || childLogicalHeight > pageLogicalHeight)
@@ -1045,7 +1045,7 @@ void RenderBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc
if (childToExclude == child)
continue; // Skip this child, since it will be positioned by the specialized subclass (fieldsets and ruby runs).
- updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, child);
+ updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, *child);
if (child->isOutOfFlowPositioned()) {
child->containingBlock()->insertPositionedObject(child);
@@ -1138,8 +1138,8 @@ RenderBlockFlow::MarginValues RenderBlockFlow::marginValuesForChild(RenderBox* c
} else {
// The child is perpendicular to us, which means its margins don't collapse but are on the
// "logical left/right" sides of the child box. We can just return the raw margin in this case.
- beforeMargin = marginBeforeForChild(child);
- afterMargin = marginAfterForChild(child);
+ beforeMargin = marginBeforeForChild(*child);
+ afterMargin = marginAfterForChild(*child);
Julien - ping for review 2014/11/26 18:52:35 Ditto.
}
// Resolve uncollapsing margins into their positive/negative buckets.
@@ -1270,7 +1270,7 @@ LayoutUnit RenderBlockFlow::collapseMargins(RenderBox* child, MarginInfo& margin
// and just add the child margin to the container height. This will correctly position
// the child inside the container.
LayoutUnit separateMargin = !marginInfo.canCollapseWithMarginBefore() ? marginInfo.margin() : LayoutUnit(0);
- setLogicalHeight(logicalHeight() + separateMargin + marginBeforeForChild(child));
+ setLogicalHeight(logicalHeight() + separateMargin + marginBeforeForChild(*child));
Julien - ping for review 2014/11/26 18:52:35 Ditto.
logicalTop = logicalHeight();
} else if (!marginInfo.discardMargin() && (!marginInfo.atBeforeSideOfBlock()
|| (!marginInfo.canCollapseMarginBeforeWithChildren()
@@ -1445,7 +1445,7 @@ void RenderBlockFlow::marginBeforeEstimateForChild(RenderBox* child, LayoutUnit&
return;
}
- LayoutUnit beforeChildMargin = marginBeforeForChild(child);
+ LayoutUnit beforeChildMargin = marginBeforeForChild(*child);
positiveMarginBefore = std::max(positiveMarginBefore, beforeChildMargin);
negativeMarginBefore = std::max(negativeMarginBefore, -beforeChildMargin);
@@ -1482,7 +1482,7 @@ void RenderBlockFlow::marginBeforeEstimateForChild(RenderBox* child, LayoutUnit&
// If we have a 'clear' value but also have a margin we may not actually require clearance to move past any floats.
// If that's the case we want to be sure we estimate the correct position including margins after any floats rather
// than use 'clearance' later which could give us the wrong position.
- if (grandchildBox->style()->clear() != CNONE && childBlockFlow->marginBeforeForChild(grandchildBox) == 0)
+ if (grandchildBox->style()->clear() != CNONE && childBlockFlow->marginBeforeForChild(*grandchildBox) == 0)
return;
// Collapse the margin of the grandchild box with our own to produce an estimate.
@@ -1887,7 +1887,7 @@ LayoutUnit RenderBlockFlow::getClearDelta(RenderBox* child, LayoutUnit logicalTo
if (!result && child->avoidsFloats()) {
LayoutUnit newLogicalTop = logicalTop;
while (true) {
- LayoutUnit availableLogicalWidthAtNewLogicalTopOffset = availableLogicalWidthForLine(newLogicalTop, false, logicalHeightForChild(child));
+ LayoutUnit availableLogicalWidthAtNewLogicalTopOffset = availableLogicalWidthForLine(newLogicalTop, false, logicalHeightForChild(*child));
if (availableLogicalWidthAtNewLogicalTopOffset == availableLogicalWidthForContent())
return newLogicalTop - logicalTop;
@@ -2303,7 +2303,7 @@ FloatingObject* RenderBlockFlow::insertFloatingObject(RenderBox* floatBox)
floatBox->computeAndSetBlockDirectionMargins(this);
}
- setLogicalWidthForFloat(newObj.get(), logicalWidthForChild(floatBox) + marginStartForChild(floatBox) + marginEndForChild(floatBox));
+ setLogicalWidthForFloat(newObj.get(), logicalWidthForChild(*floatBox) + marginStartForChild(*floatBox) + marginEndForChild(*floatBox));
return m_floatingObjects->add(newObj.release());
}
@@ -2408,7 +2408,7 @@ bool RenderBlockFlow::positionNewFloats()
// FIXME Investigate if this can be removed. crbug.com/370006
childBox->setMayNeedPaintInvalidation(true);
- LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() ? marginStartForChild(childBox) : marginEndForChild(childBox);
+ LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() ? marginStartForChild(*childBox) : marginEndForChild(*childBox);
if (childBox->style()->clear() & CLEFT)
logicalTop = std::max(lowestFloatLogicalBottom(FloatingObject::FloatLeft), logicalTop);
if (childBox->style()->clear() & CRIGHT)
@@ -2419,7 +2419,7 @@ bool RenderBlockFlow::positionNewFloats()
setLogicalLeftForFloat(floatingObject, floatLogicalLocation.x());
setLogicalLeftForChild(childBox, floatLogicalLocation.x() + childLogicalLeftMargin);
- setLogicalTopForChild(childBox, floatLogicalLocation.y() + marginBeforeForChild(childBox));
+ setLogicalTopForChild(childBox, floatLogicalLocation.y() + marginBeforeForChild(*childBox));
SubtreeLayoutScope layoutScope(*childBox);
LayoutState* layoutState = view()->layoutState();
@@ -2450,7 +2450,7 @@ bool RenderBlockFlow::positionNewFloats()
setLogicalLeftForFloat(floatingObject, floatLogicalLocation.x());
setLogicalLeftForChild(childBox, floatLogicalLocation.x() + childLogicalLeftMargin);
- setLogicalTopForChild(childBox, floatLogicalLocation.y() + marginBeforeForChild(childBox));
+ setLogicalTopForChild(childBox, floatLogicalLocation.y() + marginBeforeForChild(*childBox));
if (childBox->isRenderBlock())
childBox->setChildNeedsLayout(MarkOnlyThis);
@@ -2460,12 +2460,12 @@ bool RenderBlockFlow::positionNewFloats()
setLogicalTopForFloat(floatingObject, floatLogicalLocation.y());
- setLogicalHeightForFloat(floatingObject, logicalHeightForChild(childBox) + marginBeforeForChild(childBox) + marginAfterForChild(childBox));
+ setLogicalHeightForFloat(floatingObject, logicalHeightForChild(*childBox) + marginBeforeForChild(*childBox) + marginAfterForChild(*childBox));
m_floatingObjects->addPlacedObject(floatingObject);
if (ShapeOutsideInfo* shapeOutside = childBox->shapeOutsideInfo())
- shapeOutside->setReferenceBoxLogicalSize(logicalSizeForChild(childBox));
+ shapeOutside->setReferenceBoxLogicalSize(logicalSizeForChild(*childBox));
}
return true;
}
@@ -2599,7 +2599,7 @@ LayoutUnit RenderBlockFlow::nextFloatLogicalBottomBelow(LayoutUnit logicalHeight
LayoutUnit floatLogicalBottom = logicalBottomForFloat(floatingObject);
ShapeOutsideInfo* shapeOutside = floatingObject->renderer()->shapeOutsideInfo();
if (shapeOutside && (offsetMode == ShapeOutsideFloatShapeOffset)) {
- LayoutUnit shapeLogicalBottom = logicalTopForFloat(floatingObject) + marginBeforeForChild(floatingObject->renderer()) + shapeOutside->shapeLogicalBottom();
+ LayoutUnit shapeLogicalBottom = logicalTopForFloat(floatingObject) + marginBeforeForChild(*(floatingObject->renderer())) + shapeOutside->shapeLogicalBottom();
// Use the shapeLogicalBottom unless it extends outside of the margin box, in which case it is clipped.
if (shapeLogicalBottom < floatLogicalBottom)
floatLogicalBottom = shapeLogicalBottom;

Powered by Google App Engine
This is Rietveld 408576698