Index: Source/core/rendering/line/LineBreaker.cpp |
diff --git a/Source/core/rendering/line/LineBreaker.cpp b/Source/core/rendering/line/LineBreaker.cpp |
index f6c50cb9835a27a27f36d8a22d96d6d4bd910b97..0d405223891923271c6388f7fad3984a6dc56693 100644 |
--- a/Source/core/rendering/line/LineBreaker.cpp |
+++ b/Source/core/rendering/line/LineBreaker.cpp |
@@ -57,56 +57,6 @@ void LineBreaker::reset() |
m_clear = CNONE; |
} |
-InlineIterator LineBreaker::nextLineBreak(InlineBidiResolver& resolver, LineInfo& lineInfo, RenderTextInfo& renderTextInfo, FloatingObject* lastFloatFromPreviousLine, unsigned consecutiveHyphenatedLines, WordMeasurements& wordMeasurements) |
-{ |
- ShapeInsideInfo* shapeInsideInfo = m_block->layoutShapeInsideInfo(); |
- |
- if (!shapeInsideInfo || !shapeInsideInfo->lineOverlapsShapeBounds()) |
- return nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements); |
- |
- InlineIterator end = resolver.position(); |
- InlineIterator oldEnd = end; |
- |
- if (!shapeInsideInfo->hasSegments()) { |
- end = nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements); |
- resolver.setPositionIgnoringNestedIsolates(oldEnd); |
- return oldEnd; |
- } |
- |
- const SegmentList& segments = shapeInsideInfo->segments(); |
- SegmentRangeList& segmentRanges = shapeInsideInfo->segmentRanges(); |
- |
- for (unsigned i = 0; i < segments.size() && !end.atEnd(); i++) { |
- const InlineIterator segmentStart = resolver.position(); |
- end = nextSegmentBreak(resolver, lineInfo, renderTextInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines, wordMeasurements); |
- |
- ASSERT(segmentRanges.size() == i); |
- if (resolver.position().atEnd()) { |
- segmentRanges.append(LineSegmentRange(segmentStart, end)); |
- break; |
- } |
- if (resolver.position() == end) { |
- // Nothing fit this segment |
- end = segmentStart; |
- segmentRanges.append(LineSegmentRange(segmentStart, segmentStart)); |
- resolver.setPositionIgnoringNestedIsolates(segmentStart); |
- } else { |
- // Note that resolver.position is already skipping some of the white space at the beginning of the line, |
- // so that's why segmentStart might be different than resolver.position(). |
- LineSegmentRange range(resolver.position(), end); |
- segmentRanges.append(range); |
- resolver.setPosition(end, numberOfIsolateAncestors(end)); |
- |
- if (lineInfo.previousLineBrokeCleanly()) { |
- // If we hit a new line break, just stop adding anything to this line. |
- break; |
- } |
- } |
- } |
- resolver.setPositionIgnoringNestedIsolates(oldEnd); |
- return end; |
-} |
- |
InlineIterator LineBreaker::nextSegmentBreak(InlineBidiResolver& resolver, LineInfo& lineInfo, RenderTextInfo& renderTextInfo, FloatingObject* lastFloatFromPreviousLine, unsigned consecutiveHyphenatedLines, WordMeasurements& wordMeasurements) |
{ |
reset(); |