summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/line/TrailingObjects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/line/TrailingObjects.cpp')
-rw-r--r--Source/WebCore/rendering/line/TrailingObjects.cpp38
1 files changed, 19 insertions, 19 deletions
diff --git a/Source/WebCore/rendering/line/TrailingObjects.cpp b/Source/WebCore/rendering/line/TrailingObjects.cpp
index 96490cd5b..11ce2b6f6 100644
--- a/Source/WebCore/rendering/line/TrailingObjects.cpp
+++ b/Source/WebCore/rendering/line/TrailingObjects.cpp
@@ -29,44 +29,44 @@
namespace WebCore {
-void TrailingObjects::updateMidpointsForTrailingBoxes(LineMidpointState& lineMidpointState, const InlineIterator& lBreak, CollapseFirstSpaceOrNot collapseFirstSpace)
+void TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes(LineWhitespaceCollapsingState& lineWhitespaceCollapsingState, const InlineIterator& lBreak, CollapseFirstSpaceOrNot collapseFirstSpace)
{
if (!m_whitespace)
return;
- // This object is either going to be part of the last midpoint, or it is going to be the actual endpoint.
+ // This object is either going to be part of the last transition, or it is going to be the actual endpoint.
// In both cases we just decrease our pos by 1 level to exclude the space, allowing it to - in effect - collapse into the newline.
- if (lineMidpointState.numMidpoints() % 2) {
- // Find the trailing space object's midpoint.
- int trailingSpaceMidpoint = lineMidpointState.numMidpoints() - 1;
- for ( ; trailingSpaceMidpoint > 0 && lineMidpointState.midpoints()[trailingSpaceMidpoint].renderer() != m_whitespace; --trailingSpaceMidpoint) { }
- ASSERT(trailingSpaceMidpoint >= 0);
+ if (lineWhitespaceCollapsingState.numTransitions() % 2) {
+ // Find the trailing space object's transition.
+ int trailingSpaceTransition = lineWhitespaceCollapsingState.numTransitions() - 1;
+ for ( ; trailingSpaceTransition > 0 && lineWhitespaceCollapsingState.transitions()[trailingSpaceTransition].renderer() != m_whitespace; --trailingSpaceTransition) { }
+ ASSERT(trailingSpaceTransition >= 0);
if (collapseFirstSpace == CollapseFirstSpace)
- lineMidpointState.midpoints()[trailingSpaceMidpoint].setOffset(lineMidpointState.midpoints()[trailingSpaceMidpoint].offset() -1);
+ lineWhitespaceCollapsingState.decrementTransitionAt(trailingSpaceTransition);
- // Now make sure every single trailingPositionedBox following the trailingSpaceMidpoint properly stops and starts
+ // Now make sure every single trailingPositionedBox following the trailingSpaceTransition properly stops and starts
// ignoring spaces.
- size_t currentMidpoint = trailingSpaceMidpoint + 1;
+ size_t currentTransition = trailingSpaceTransition + 1;
for (size_t i = 0; i < m_boxes.size(); ++i) {
- if (currentMidpoint >= lineMidpointState.numMidpoints()) {
- // We don't have a midpoint for this box yet.
- lineMidpointState.ensureLineBoxInsideIgnoredSpaces(m_boxes[i]);
+ if (currentTransition >= lineWhitespaceCollapsingState.numTransitions()) {
+ // We don't have a transition for this box yet.
+ lineWhitespaceCollapsingState.ensureLineBoxInsideIgnoredSpaces(m_boxes[i]);
} else {
- ASSERT(lineMidpointState.midpoints()[currentMidpoint].renderer() == m_boxes[i]);
- ASSERT(lineMidpointState.midpoints()[currentMidpoint + 1].renderer() == m_boxes[i]);
+ ASSERT(lineWhitespaceCollapsingState.transitions()[currentTransition].renderer() == &(m_boxes[i].get()));
+ ASSERT(lineWhitespaceCollapsingState.transitions()[currentTransition + 1].renderer() == &(m_boxes[i].get()));
}
- currentMidpoint += 2;
+ currentTransition += 2;
}
} else if (!lBreak.renderer()) {
ASSERT(m_whitespace->isText());
ASSERT(collapseFirstSpace == CollapseFirstSpace);
- // Add a new end midpoint that stops right at the very end.
+ // Add a new end transition that stops right at the very end.
unsigned length = m_whitespace->textLength();
unsigned pos = length >= 2 ? length - 2 : UINT_MAX;
InlineIterator endMid(0, m_whitespace, pos);
- lineMidpointState.startIgnoringSpaces(endMid);
+ lineWhitespaceCollapsingState.startIgnoringSpaces(endMid);
for (size_t i = 0; i < m_boxes.size(); ++i)
- lineMidpointState.ensureLineBoxInsideIgnoredSpaces(m_boxes[i]);
+ lineWhitespaceCollapsingState.ensureLineBoxInsideIgnoredSpaces(m_boxes[i]);
}
}