Index: Source/core/rendering/RenderBlockLineLayout.cpp |
diff --git a/Source/core/rendering/RenderBlockLineLayout.cpp b/Source/core/rendering/RenderBlockLineLayout.cpp |
index 697da35d157b5637ab51317aa892024b9b35e4df..da0c20041e756f0475e95d6f44b6880677301bdd 100644 |
--- a/Source/core/rendering/RenderBlockLineLayout.cpp |
+++ b/Source/core/rendering/RenderBlockLineLayout.cpp |
@@ -140,7 +140,7 @@ static bool parentIsConstructedOrHaveNext(InlineFlowBox* parentBox) |
return false; |
} |
-InlineFlowBox* RenderBlockFlow::createLineBoxes(RenderObject* obj, const LineInfo& lineInfo, InlineBox* childBox, bool startNewSegment) |
+InlineFlowBox* RenderBlockFlow::createLineBoxes(RenderObject* obj, const LineInfo& lineInfo, InlineBox* childBox) |
{ |
// See if we have an unconstructed line box for this object that is also |
// the last item on the line. |
@@ -163,8 +163,7 @@ InlineFlowBox* RenderBlockFlow::createLineBoxes(RenderObject* obj, const LineInf |
// the same line (this can happen with very fancy language mixtures). |
bool constructedNewBox = false; |
bool allowedToConstructNewBox = !hasDefaultLineBoxContain || !inlineFlow || inlineFlow->alwaysCreateLineBoxes(); |
- bool mustCreateBoxesToRoot = startNewSegment && !(parentBox && parentBox->isRootInlineBox()); |
- bool canUseExistingParentBox = parentBox && !parentIsConstructedOrHaveNext(parentBox) && !mustCreateBoxesToRoot; |
+ bool canUseExistingParentBox = parentBox && !parentIsConstructedOrHaveNext(parentBox); |
if (allowedToConstructNewBox && !canUseExistingParentBox) { |
// We need to make a new box for this render object. Once |
// made, we need to place it at the end of the current line. |
@@ -263,12 +262,10 @@ RootInlineBox* RenderBlockFlow::constructLine(BidiRunList<BidiRun>& bidiRuns, co |
// then we need to construct inline boxes as necessary to properly enclose the |
// run's inline box. Segments can only be siblings at the root level, as |
// they are positioned separately. |
- bool runStartsSegment = r->m_startsSegment; |
- |
- if (!parentBox || parentBox->renderer() != r->m_object->parent() || runStartsSegment) |
+ if (!parentBox || parentBox->renderer() != r->m_object->parent()) { |
// Create new inline boxes all the way back to the appropriate insertion point. |
- parentBox = createLineBoxes(r->m_object->parent(), lineInfo, box, runStartsSegment); |
- else { |
+ parentBox = createLineBoxes(r->m_object->parent(), lineInfo, box); |
+ } else { |
// Append the inline box to this line. |
parentBox->addToLine(box); |
} |
@@ -511,9 +508,6 @@ static inline void computeExpansionForJustifiedText(BidiRun* firstRun, BidiRun* |
size_t i = 0; |
for (BidiRun* r = firstRun; r; r = r->next()) { |
- // This method is called once per segment, do not move past the current segment. |
- if (r->m_startsSegment) |
- break; |
if (!r->m_box || r == trailingSpaceRun) |
continue; |
@@ -640,10 +634,6 @@ BidiRun* RenderBlockFlow::computeInlineDirectionPositionsForSegment(RootInlineBo |
BidiRun* r = firstRun; |
for (; r; r = r->next()) { |
- // Once we have reached the start of the next segment, we have finished |
- // computing the positions for this segment's contents. |
- if (r->m_startsSegment) |
- break; |
if (!r->m_box || r->m_object->isOutOfFlowPositioned() || r->m_box->isLineBreak()) |
continue; // Positioned objects are only participating to figure out their |
// correct static x position. They have no effect on the width. |