Index: Source/core/editing/FrameSelection.cpp |
diff --git a/Source/core/editing/FrameSelection.cpp b/Source/core/editing/FrameSelection.cpp |
index 649efb9bae0e55feb73eeb9735ea76f1d73dd022..09f71ff12222702e4717450ee6fe9fb939660a8d 100644 |
--- a/Source/core/editing/FrameSelection.cpp |
+++ b/Source/core/editing/FrameSelection.cpp |
@@ -298,7 +298,7 @@ void FrameSelection::setSelection(const VisibleSelection& newSelection, SetSelec |
m_frame->domWindow()->enqueueDocumentEvent(Event::create(EventTypeNames::selectionchange)); |
} |
-static bool removingNodeRemovesPosition(Node* node, const Position& position) |
+static bool removingNodeRemovesPosition(Node& node, const Position& position) |
{ |
if (!position.anchorNode()) |
return false; |
@@ -306,11 +306,11 @@ static bool removingNodeRemovesPosition(Node* node, const Position& position) |
if (position.anchorNode() == node) |
return true; |
- if (!node->isElementNode()) |
+ if (!node.isElementNode()) |
return false; |
- Element* element = toElement(node); |
- return element->containsIncludingShadowDOM(position.anchorNode()); |
+ Element& element = toElement(node); |
+ return element.containsIncludingShadowDOM(position.anchorNode()); |
} |
static void clearRenderViewSelection(const Position& position) |
@@ -321,18 +321,18 @@ static void clearRenderViewSelection(const Position& position) |
view->clearSelection(); |
} |
-void FrameSelection::nodeWillBeRemoved(Node* node) |
+void FrameSelection::nodeWillBeRemoved(Node& node) |
{ |
// There can't be a selection inside a fragment, so if a fragment's node is being removed, |
// the selection in the document that created the fragment needs no adjustment. |
- if (isNone() || (node && !node->inDocument())) |
+ if (isNone() || !node.inDocument()) |
return; |
respondToNodeModification(node, removingNodeRemovesPosition(node, m_selection.base()), removingNodeRemovesPosition(node, m_selection.extent()), |
removingNodeRemovesPosition(node, m_selection.start()), removingNodeRemovesPosition(node, m_selection.end())); |
} |
-void FrameSelection::respondToNodeModification(Node* node, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved) |
+void FrameSelection::respondToNodeModification(Node& node, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved) |
{ |
bool clearRenderTreeSelection = false; |
bool clearDOMTreeSelection = false; |
@@ -341,9 +341,9 @@ void FrameSelection::respondToNodeModification(Node* node, bool baseRemoved, boo |
Position start = m_selection.start(); |
Position end = m_selection.end(); |
if (startRemoved) |
- updatePositionForNodeRemoval(start, node); |
+ updatePositionForNodeRemoval(start, &node); |
if (endRemoved) |
- updatePositionForNodeRemoval(end, node); |
+ updatePositionForNodeRemoval(end, &node); |
if (start.isNotNull() && end.isNotNull()) { |
if (m_selection.isBaseFirst()) |
@@ -365,7 +365,7 @@ void FrameSelection::respondToNodeModification(Node* node, bool baseRemoved, boo |
m_selection.setWithoutValidation(m_selection.end(), m_selection.start()); |
} else if (RefPtr<Range> range = m_selection.firstRange()) { |
TrackExceptionState es; |
- Range::CompareResults compareResult = range->compareNode(node, es); |
+ Range::CompareResults compareResult = range->compareNode(&node, es); |
if (!es.hadException() && (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE)) { |
// If we did nothing here, when this node's renderer was destroyed, the rect that it |
// occupied would be invalidated, but, selection gaps that change as a result of |