Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(697)

Unified Diff: third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp

Issue 2781623010: Add DocumentMarker::clone() (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698