Chromium Code Reviews| 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 34506d1809171ca1ef41fdc04d995e252f4aa773..79db60a2f69add805e4f3d8e6cf4aab009e89dba 100644 |
| --- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
| +++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp |
| @@ -381,11 +381,11 @@ void DocumentMarkerController::removeMarkers( |
| MarkerList::iterator startPos = |
| std::upper_bound(list->begin(), list->end(), startOffset, endsBefore); |
| for (MarkerList::iterator i = startPos; i != list->end();) { |
| - DocumentMarker marker(*i->get()); |
| + DocumentMarker* marker = (*i)->clone(); |
|
Xiaocheng
2017/03/30 02:20:28
No need to change this part. |marker| should refer
|
| // markers are returned in order, so stop if we are now past the specified |
| // range |
| - if (marker.startOffset() >= endOffset) |
| + if (marker->startOffset() >= endOffset) |
| break; |
| // at this point we know that marker and target intersect in some way |
| @@ -400,19 +400,19 @@ void DocumentMarkerController::removeMarkers( |
| } |
| // add either of the resulting slices that are left after removing target |
| - if (startOffset > marker.startOffset()) { |
| - DocumentMarker newLeft = marker; |
| - newLeft.setEndOffset(startOffset); |
| + if (startOffset > marker->startOffset()) { |
| + DocumentMarker* newLeft = marker->clone(); |
| + newLeft->setEndOffset(startOffset); |
| size_t insertIndex = i - list->begin(); |
| - list->insert(insertIndex, RenderedDocumentMarker::create(newLeft)); |
| + list->insert(insertIndex, RenderedDocumentMarker::create(*newLeft)); |
| // Move to the marker after the inserted one. |
| i = list->begin() + insertIndex + 1; |
| } |
| - if (marker.endOffset() > endOffset) { |
| - DocumentMarker newRight = marker; |
| - newRight.setStartOffset(endOffset); |
| + if (marker->endOffset() > endOffset) { |
| + DocumentMarker* newRight = marker->clone(); |
| + newRight->setStartOffset(endOffset); |
| size_t insertIndex = i - list->begin(); |
| - list->insert(insertIndex, RenderedDocumentMarker::create(newRight)); |
| + list->insert(insertIndex, RenderedDocumentMarker::create(*newRight)); |
| // Move to the marker after the inserted one. |
| i = list->begin() + insertIndex + 1; |
| } |