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

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: 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..6f18814ae9088d1af6374bc38c460a68f413e9a5 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 : inRange(range)) {
+ 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 : inRange(range->startPosition(), range->endPosition())) {
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;
}

Powered by Google App Engine
This is Rietveld 408576698