| Index: third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
|
| index e6dbcb8760ed4e85883fed9b8b86c66b347c5bd1..3dea6b1d6064e36c907172211770c0a6f4190f63 100644
|
| --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
|
| @@ -96,10 +96,10 @@ void DocumentMarkerController::AddMarker(const Position& start,
|
| // covers.
|
| for (TextIterator marked_text(start, end); !marked_text.AtEnd();
|
| marked_text.Advance()) {
|
| - AddMarker(
|
| - marked_text.CurrentContainer(),
|
| - DocumentMarker(type, marked_text.StartOffsetInCurrentContainer(),
|
| - marked_text.EndOffsetInCurrentContainer(), description));
|
| + AddMarker(marked_text.CurrentContainer(),
|
| + new DocumentMarker(
|
| + type, marked_text.StartOffsetInCurrentContainer(),
|
| + marked_text.EndOffsetInCurrentContainer(), description));
|
| }
|
| }
|
|
|
| @@ -113,9 +113,9 @@ void DocumentMarkerController::AddTextMatchMarker(
|
| for (TextIterator marked_text(range.StartPosition(), range.EndPosition());
|
| !marked_text.AtEnd(); marked_text.Advance()) {
|
| AddMarker(marked_text.CurrentContainer(),
|
| - DocumentMarker(marked_text.StartOffsetInCurrentContainer(),
|
| - marked_text.EndOffsetInCurrentContainer(),
|
| - match_status));
|
| + new DocumentMarker(marked_text.StartOffsetInCurrentContainer(),
|
| + marked_text.EndOffsetInCurrentContainer(),
|
| + match_status));
|
| }
|
| // Don't invalidate tickmarks here. TextFinder invalidates tickmarks using a
|
| // throttling algorithm. crbug.com/6819.
|
| @@ -129,11 +129,12 @@ void DocumentMarkerController::AddCompositionMarker(const Position& start,
|
| DCHECK(!document_->NeedsLayoutTreeUpdate());
|
|
|
| for (TextIterator marked_text(start, end); !marked_text.AtEnd();
|
| - marked_text.Advance())
|
| + marked_text.Advance()) {
|
| AddMarker(marked_text.CurrentContainer(),
|
| - DocumentMarker(marked_text.StartOffsetInCurrentContainer(),
|
| - marked_text.EndOffsetInCurrentContainer(),
|
| - underline_color, thick, background_color));
|
| + new DocumentMarker(marked_text.StartOffsetInCurrentContainer(),
|
| + marked_text.EndOffsetInCurrentContainer(),
|
| + underline_color, thick, background_color));
|
| + }
|
| }
|
|
|
| void DocumentMarkerController::PrepareForDestruction() {
|
| @@ -189,12 +190,12 @@ static void UpdateMarkerRenderedRect(const Node& node,
|
| // Markers of the same type do not overlap each other.
|
|
|
| void DocumentMarkerController::AddMarker(Node* node,
|
| - const DocumentMarker& new_marker) {
|
| - DCHECK_GE(new_marker.EndOffset(), new_marker.StartOffset());
|
| - if (new_marker.EndOffset() == new_marker.StartOffset())
|
| + DocumentMarker* new_marker) {
|
| + DCHECK_GE(new_marker->EndOffset(), new_marker->StartOffset());
|
| + if (new_marker->EndOffset() == new_marker->StartOffset())
|
| return;
|
|
|
| - possibly_existing_marker_types_.Add(new_marker.GetType());
|
| + possibly_existing_marker_types_.Add(new_marker->GetType());
|
|
|
| Member<MarkerLists>& markers =
|
| markers_.insert(node, nullptr).stored_value->value;
|
| @@ -203,12 +204,12 @@ void DocumentMarkerController::AddMarker(Node* node,
|
| markers->Grow(DocumentMarker::kMarkerTypeIndexesCount);
|
| }
|
|
|
| - const DocumentMarker::MarkerType new_marker_type = new_marker.GetType();
|
| + const DocumentMarker::MarkerType new_marker_type = new_marker->GetType();
|
| if (!ListForType(markers, new_marker_type))
|
| ListForType(markers, new_marker_type) = new MarkerList;
|
|
|
| Member<MarkerList>& list = ListForType(markers, new_marker_type);
|
| - DocumentMarkerListEditor::AddMarker(list, &new_marker);
|
| + DocumentMarkerListEditor::AddMarker(list, new_marker);
|
|
|
| // repaint the affected node
|
| if (node->GetLayoutObject()) {
|
|
|