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

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

Issue 2251703002: Introduce EphemeralRange::nodes() helper to traverse over a range. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move default template to right place Created 4 years, 4 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 ae98bd92ffb435bb1ef82022baac5dda957851f8..3fa6b03d460a134e1fb142e8ca44dee4b0fce701 100644
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerController.cpp
@@ -456,9 +456,8 @@ DocumentMarkerVector DocumentMarkerController::markersInRange(const EphemeralRan
DCHECK(endContainer);
unsigned endOffset = static_cast<unsigned>(range.endPosition().computeOffsetInContainerNode());
- Node* pastLastNode = range.endPosition().nodeAsRangePastLastNode();
- for (Node* node = range.startPosition().nodeAsRangeFirstNode(); node != pastLastNode; node = NodeTraversal::next(*node)) {
- for (DocumentMarker* marker : markersFor(node)) {
+ for (Node& node : range.nodes()) {
+ for (DocumentMarker* marker : markersFor(&node)) {
if (!markerTypes.contains(marker->type()))
continue;
if (node == startContainer && marker->endOffset() <= startOffset)
@@ -723,14 +722,11 @@ bool DocumentMarkerController::setMarkersActive(Range* range, bool active)
Node* startContainer = range->startContainer();
Node* endContainer = range->endContainer();
-
- Node* pastLastNode = range->pastLastNode();
-
bool markerFound = false;
- for (Node* node = range->firstNode(); node != pastLastNode; node = NodeTraversal::next(*node)) {
+ for (Node& node : EphemeralRange(range).nodes()) {
int startOffset = node == startContainer ? range->startOffset() : 0;
int endOffset = node == endContainer ? range->endOffset() : INT_MAX;
- markerFound |= setMarkersActive(node, startOffset, endOffset, active);
+ markerFound |= setMarkersActive(&node, startOffset, endOffset, active);
}
return markerFound;
}
« no previous file with comments | « third_party/WebKit/Source/core/editing/EphemeralRangeTest.cpp ('k') | third_party/WebKit/Source/web/WebLocalFrameImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698