| Index: third_party/WebKit/Source/platform/fonts/shaping/ShapingLineBreaker.cpp
|
| diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapingLineBreaker.cpp b/third_party/WebKit/Source/platform/fonts/shaping/ShapingLineBreaker.cpp
|
| index 1f383448386d4b05ff3fb2e2f763eb81d4bf5014..5206620abd964b923089b5c2b7b48b99b87f3495 100644
|
| --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapingLineBreaker.cpp
|
| +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapingLineBreaker.cpp
|
| @@ -53,31 +53,6 @@ unsigned NextSafeToBreakBefore(const UChar* text,
|
|
|
| } // namespace
|
|
|
| -// TODO(eae); Should take a const LazyLineBreakIterator& but that requires the
|
| -// LazyLineBreakIterator::isBreakable method to be updated to be const.
|
| -unsigned ShapingLineBreaker::PreviousBreakOpportunity(
|
| - LazyLineBreakIterator* break_iterator,
|
| - unsigned start,
|
| - unsigned offset) {
|
| - DCHECK(break_iterator);
|
| - unsigned pos = std::min(start + offset, shaper_->TextLength());
|
| - for (; pos > start; pos--) {
|
| - int next_break = 0;
|
| - if (break_iterator->IsBreakable(pos, next_break, break_type_))
|
| - return pos;
|
| - }
|
| - return start;
|
| -}
|
| -
|
| -unsigned ShapingLineBreaker::NextBreakOpportunity(
|
| - LazyLineBreakIterator* break_iterator,
|
| - unsigned offset) {
|
| - DCHECK(break_iterator);
|
| - int next_break = 0;
|
| - break_iterator->IsBreakable(offset, next_break, break_type_);
|
| - return next_break;
|
| -}
|
| -
|
| // Shapes a line of text by finding a valid and appropriate break opportunity
|
| // based on the shaping results for the entire paragraph. Re-shapes the start
|
| // and end of the line as needed.
|
| @@ -131,13 +106,13 @@ PassRefPtr<ShapeResult> ShapingLineBreaker::ShapeLine(
|
| // Find a candidate break opportunity by identifying the last offset before
|
| // exceeding the available space and the determine the closest valid break
|
| // preceding the candidate.
|
| - LazyLineBreakIterator break_iterator(text_, locale_);
|
| + LazyLineBreakIterator break_iterator(text_, locale_, break_type_);
|
| LayoutUnit end_position = start_position + available_space;
|
| unsigned candidate_break = result_->OffsetForPosition(end_position, false);
|
| unsigned break_opportunity =
|
| - PreviousBreakOpportunity(&break_iterator, start, candidate_break);
|
| + break_iterator.PreviousBreakOpportunity(candidate_break, start);
|
| if (break_opportunity <= start) {
|
| - break_opportunity = NextBreakOpportunity(&break_iterator, candidate_break);
|
| + break_opportunity = break_iterator.NextBreakOpportunity(candidate_break);
|
| }
|
|
|
| RefPtr<ShapeResult> line_end_result;
|
| @@ -159,8 +134,8 @@ PassRefPtr<ShapeResult> ShapingLineBreaker::ShapeLine(
|
| if (safe_position + line_end_result->SnappedWidth() <= end_position)
|
| break;
|
| line_end_result = nullptr;
|
| - break_opportunity = PreviousBreakOpportunity(&break_iterator, start,
|
| - break_opportunity - 1);
|
| + break_opportunity = break_iterator.PreviousBreakOpportunity(
|
| + break_opportunity - 1, start);
|
| }
|
| }
|
|
|
| @@ -171,7 +146,7 @@ PassRefPtr<ShapeResult> ShapingLineBreaker::ShapeLine(
|
|
|
| // No suitable break opportunity, not exceeding the available space,
|
| // found. Choose the next valid one even though it will overflow.
|
| - break_opportunity = NextBreakOpportunity(&break_iterator, candidate_break);
|
| + break_opportunity = break_iterator.NextBreakOpportunity(candidate_break);
|
| }
|
|
|
| // Create shape results for the line by copying from the re-shaped result (if
|
|
|