| Index: third_party/WebKit/Source/core/editing/iterators/TextIteratorTextNodeHandler.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextNodeHandler.cpp b/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextNodeHandler.cpp
|
| index be88802eb9f65a5b1e9033ed0943c653caf1bcc8..d96e3c7053135e51d25b3563abad2137289ba393 100644
|
| --- a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextNodeHandler.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextNodeHandler.cpp
|
| @@ -16,7 +16,12 @@ namespace blink {
|
| TextIteratorTextNodeHandler::TextIteratorTextNodeHandler(
|
| const TextIteratorBehavior& behavior,
|
| TextIteratorTextState* text_state)
|
| - : behavior_(behavior), text_state_(*text_state) {}
|
| + : behavior_(behavior), text_state_(text_state) {}
|
| +
|
| +DEFINE_TRACE(TextIteratorTextNodeHandler) {
|
| + visitor->Trace(text_node_);
|
| + visitor->Trace(text_state_);
|
| +}
|
|
|
| bool TextIteratorTextNodeHandler::HandleRemainingTextRuns() {
|
| if (ShouldProceedToRemainingText())
|
| @@ -24,13 +29,13 @@ bool TextIteratorTextNodeHandler::HandleRemainingTextRuns() {
|
| // Handle remembered text box
|
| if (text_box_) {
|
| HandleTextBox();
|
| - return text_state_.PositionNode();
|
| + return text_state_->PositionNode();
|
| }
|
| // Handle remembered pre-formatted text node.
|
| if (!needs_handle_pre_formatted_text_node_)
|
| return false;
|
| HandlePreFormattedTextNode();
|
| - return text_state_.PositionNode();
|
| + return text_state_->PositionNode();
|
| }
|
|
|
| bool TextIteratorTextNodeHandler::ShouldHandleFirstLetter(
|
| @@ -256,8 +261,8 @@ void TextIteratorTextNodeHandler::HandleTextBox() {
|
| text_box_start == run_start && run_start > 0);
|
| if (need_space &&
|
| !layout_object->Style()->IsCollapsibleWhiteSpace(
|
| - text_state_.LastCharacter()) &&
|
| - text_state_.LastCharacter()) {
|
| + text_state_->LastCharacter()) &&
|
| + text_state_->LastCharacter()) {
|
| if (run_start > 0 && str[run_start - 1] == ' ') {
|
| unsigned space_run_start = run_start - 1;
|
| while (space_run_start > 0 && str[space_run_start - 1] == ' ')
|
| @@ -324,7 +329,7 @@ void TextIteratorTextNodeHandler::HandleTextBox() {
|
| // If we are doing a subrun that doesn't go to the end of the text box,
|
| // come back again to finish handling this text box; don't advance to
|
| // the next one.
|
| - if (static_cast<unsigned>(text_state_.PositionEndOffset()) <
|
| + if (static_cast<unsigned>(text_state_->PositionEndOffset()) <
|
| text_box_end)
|
| return;
|
|
|
| @@ -436,8 +441,8 @@ void TextIteratorTextNodeHandler::SpliceBuffer(UChar c,
|
| Node* offset_base_node,
|
| int text_start_offset,
|
| int text_end_offset) {
|
| - text_state_.SpliceBuffer(c, text_node, offset_base_node, text_start_offset,
|
| - text_end_offset);
|
| + text_state_->SpliceBuffer(c, text_node, offset_base_node, text_start_offset,
|
| + text_end_offset);
|
| ResetCollapsedWhiteSpaceFixup();
|
| }
|
|
|
| @@ -445,8 +450,8 @@ void TextIteratorTextNodeHandler::EmitText(Node* text_node,
|
| LayoutText* layout_object,
|
| int text_start_offset,
|
| int text_end_offset) {
|
| - text_state_.EmitText(text_node, layout_object, text_start_offset,
|
| - text_end_offset);
|
| + text_state_->EmitText(text_node, layout_object, text_start_offset,
|
| + text_end_offset);
|
| ResetCollapsedWhiteSpaceFixup();
|
| }
|
|
|
|
|