Title: [175836] trunk/Source/WebCore
Revision
175836
Author
cdu...@apple.com
Date
2014-11-10 16:02:57 -0800 (Mon, 10 Nov 2014)

Log Message

Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
https://bugs.webkit.org/show_bug.cgi?id=138578

Reviewed by Andreas Kling.

Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
and turn the argument into a reference to make it clear it cannot be
null.

No new tests, no behavior change.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::willRemoveChild):
* dom/Document.cpp:
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
* dom/Document.h:
* dom/NodeIterator.cpp:
(WebCore::NodeIterator::nodeWillBeRemoved):
(WebCore::NodeIterator::updateForNodeRemoval):
* dom/NodeIterator.h:
* dom/Range.cpp:
(WebCore::Range::insertNode):
(WebCore::boundaryNodeWillBeRemoved):
(WebCore::Range::nodeWillBeRemoved):
* dom/Range.h:
* dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::setToBeforeChild):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren):
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):
* editing/FrameSelection.cpp:
(WebCore::removingNodeRemovesPosition):
(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::FrameSelection::nodeWillBeRemoved):
(WebCore::FrameSelection::respondToNodeModification):
* editing/FrameSelection.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
* editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval):
* editing/htmlediting.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::nodeWillBeRemoved):
* page/EventHandler.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (175835 => 175836)


--- trunk/Source/WebCore/ChangeLog	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/ChangeLog	2014-11-11 00:02:57 UTC (rev 175836)
@@ -1,3 +1,55 @@
+2014-11-10  Chris Dumez  <cdu...@apple.com>
+
+        Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
+        https://bugs.webkit.org/show_bug.cgi?id=138578
+
+        Reviewed by Andreas Kling.
+
+        Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
+        and turn the argument into a reference to make it clear it cannot be
+        null.
+
+        No new tests, no behavior change.
+
+        * dom/ContainerNode.cpp:
+        (WebCore::ContainerNode::willRemoveChild):
+        * dom/Document.cpp:
+        (WebCore::Document::nodeChildrenWillBeRemoved):
+        (WebCore::Document::nodeWillBeRemoved):
+        * dom/Document.h:
+        * dom/NodeIterator.cpp:
+        (WebCore::NodeIterator::nodeWillBeRemoved):
+        (WebCore::NodeIterator::updateForNodeRemoval):
+        * dom/NodeIterator.h:
+        * dom/Range.cpp:
+        (WebCore::Range::insertNode):
+        (WebCore::boundaryNodeWillBeRemoved):
+        (WebCore::Range::nodeWillBeRemoved):
+        * dom/Range.h:
+        * dom/RangeBoundaryPoint.h:
+        (WebCore::RangeBoundaryPoint::setToBeforeChild):
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren):
+        * editing/CompositeEditCommand.h:
+        * editing/DeleteSelectionCommand.cpp:
+        (WebCore::DeleteSelectionCommand::removeNode):
+        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
+        (WebCore::DeleteSelectionCommand::removeRedundantBlocks):
+        * editing/FrameSelection.cpp:
+        (WebCore::removingNodeRemovesPosition):
+        (WebCore::DragCaretController::nodeWillBeRemoved):
+        (WebCore::FrameSelection::nodeWillBeRemoved):
+        (WebCore::FrameSelection::respondToNodeModification):
+        * editing/FrameSelection.h:
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
+        * editing/htmlediting.cpp:
+        (WebCore::updatePositionForNodeRemoval):
+        * editing/htmlediting.h:
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::nodeWillBeRemoved):
+        * page/EventHandler.h:
+
 2014-11-10  Benjamin Poulain  <bpoul...@apple.com>
 
         Fix the build when CSS Selectors Level 4 is disabled

Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (175835 => 175836)


--- trunk/Source/WebCore/dom/ContainerNode.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -476,7 +476,7 @@
     if (child.parentNode() != this)
         return;
 
-    child.document().nodeWillBeRemoved(&child); // e.g. mutation event listener can create a new range.
+    child.document().nodeWillBeRemoved(child); // e.g. mutation event listener can create a new range.
     if (is<ContainerNode>(child))
         disconnectSubframesIfNeeded(downcast<ContainerNode>(child), RootAndDescendants);
 }

Modified: trunk/Source/WebCore/dom/Document.cpp (175835 => 175836)


--- trunk/Source/WebCore/dom/Document.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/Document.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -3661,19 +3661,19 @@
 
     for (auto it = m_nodeIterators.begin(), end = m_nodeIterators.end(); it != end; ++it) {
         for (Node* n = container.firstChild(); n; n = n->nextSibling())
-            (*it)->nodeWillBeRemoved(n);
+            (*it)->nodeWillBeRemoved(*n);
     }
 
     if (Frame* frame = this->frame()) {
         for (Node* n = container.firstChild(); n; n = n->nextSibling()) {
-            frame->eventHandler().nodeWillBeRemoved(n);
-            frame->selection().nodeWillBeRemoved(n);
-            frame->page()->dragCaretController().nodeWillBeRemoved(n);
+            frame->eventHandler().nodeWillBeRemoved(*n);
+            frame->selection().nodeWillBeRemoved(*n);
+            frame->page()->dragCaretController().nodeWillBeRemoved(*n);
         }
     }
 }
 
-void Document::nodeWillBeRemoved(Node* n)
+void Document::nodeWillBeRemoved(Node& n)
 {
     HashSet<NodeIterator*>::const_iterator nodeIteratorsEnd = m_nodeIterators.end();
     for (HashSet<NodeIterator*>::const_iterator it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it)

Modified: trunk/Source/WebCore/dom/Document.h (175835 => 175836)


--- trunk/Source/WebCore/dom/Document.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/Document.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -796,7 +796,7 @@
     // nodeChildrenWillBeRemoved is used when removing all node children at once.
     void nodeChildrenWillBeRemoved(ContainerNode&);
     // nodeWillBeRemoved is only safe when removing one node at a time.
-    void nodeWillBeRemoved(Node*);
+    void nodeWillBeRemoved(Node&);
     bool canReplaceChild(Node* newChild, Node* oldChild);
 
     void textInserted(Node*, unsigned offset, unsigned length);

Modified: trunk/Source/WebCore/dom/NodeIterator.cpp (175835 => 175836)


--- trunk/Source/WebCore/dom/NodeIterator.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/NodeIterator.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -154,43 +154,42 @@
     m_referenceNode.node.clear();
 }
 
-void NodeIterator::nodeWillBeRemoved(Node* removedNode)
+void NodeIterator::nodeWillBeRemoved(Node& removedNode)
 {
     updateForNodeRemoval(removedNode, m_candidateNode);
     updateForNodeRemoval(removedNode, m_referenceNode);
 }
 
-void NodeIterator::updateForNodeRemoval(Node* removedNode, NodePointer& referenceNode) const
+void NodeIterator::updateForNodeRemoval(Node& removedNode, NodePointer& referenceNode) const
 {
     ASSERT(!m_detached);
-    ASSERT(removedNode);
-    ASSERT(&root()->document() == &removedNode->document());
+    ASSERT(&root()->document() == &removedNode.document());
 
     // Iterator is not affected if the removed node is the reference node and is the root.
     // or if removed node is not the reference node, or the ancestor of the reference node.
-    if (!removedNode->isDescendantOf(root()))
+    if (!removedNode.isDescendantOf(root()))
         return;
-    bool willRemoveReferenceNode = removedNode == referenceNode.node;
-    bool willRemoveReferenceNodeAncestor = referenceNode.node && referenceNode.node->isDescendantOf(removedNode);
+    bool willRemoveReferenceNode = &removedNode == referenceNode.node;
+    bool willRemoveReferenceNodeAncestor = referenceNode.node && referenceNode.node->isDescendantOf(&removedNode);
     if (!willRemoveReferenceNode && !willRemoveReferenceNodeAncestor)
         return;
 
     if (referenceNode.isPointerBeforeNode) {
-        Node* node = NodeTraversal::next(removedNode, root());
+        Node* node = NodeTraversal::next(&removedNode, root());
         if (node) {
             // Move out from under the node being removed if the new reference
             // node is a descendant of the node being removed.
-            while (node && node->isDescendantOf(removedNode))
+            while (node && node->isDescendantOf(&removedNode))
                 node = NodeTraversal::next(node, root());
             if (node)
                 referenceNode.node = node;
         } else {
-            node = NodeTraversal::previous(removedNode);
+            node = NodeTraversal::previous(&removedNode);
             if (node) {
                 // Move out from under the node being removed if the reference node is
                 // a descendant of the node being removed.
                 if (willRemoveReferenceNodeAncestor) {
-                    while (node && node->isDescendantOf(removedNode))
+                    while (node && node->isDescendantOf(&removedNode))
                         node = NodeTraversal::previous(node);
                 }
                 if (node) {
@@ -203,23 +202,23 @@
             }
         }
     } else {
-        Node* node = NodeTraversal::previous(removedNode);
+        Node* node = NodeTraversal::previous(&removedNode);
         if (node) {
             // Move out from under the node being removed if the reference node is
             // a descendant of the node being removed.
             if (willRemoveReferenceNodeAncestor) {
-                while (node && node->isDescendantOf(removedNode))
+                while (node && node->isDescendantOf(&removedNode))
                     node = NodeTraversal::previous(node);
             }
             if (node)
                 referenceNode.node = node;
         } else {
             // FIXME: This branch doesn't appear to have any LayoutTests.
-            node = NodeTraversal::next(removedNode, root());
+            node = NodeTraversal::next(&removedNode, root());
             // Move out from under the node being removed if the reference node is
             // a descendant of the node being removed.
             if (willRemoveReferenceNodeAncestor) {
-                while (node && node->isDescendantOf(removedNode))
+                while (node && node->isDescendantOf(&removedNode))
                     node = NodeTraversal::previous(node);
             }
             if (node)

Modified: trunk/Source/WebCore/dom/NodeIterator.h (175835 => 175836)


--- trunk/Source/WebCore/dom/NodeIterator.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/NodeIterator.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -51,7 +51,7 @@
         bool pointerBeforeReferenceNode() const { return m_referenceNode.isPointerBeforeNode; }
 
         // This function is called before any node is removed from the document tree.
-        void nodeWillBeRemoved(Node*);
+        void nodeWillBeRemoved(Node&);
 
         // Do not call these functions. They are just scaffolding to support the Objective-C bindings.
         // They operate in the main thread normal world, and they swallow JS exceptions.
@@ -71,7 +71,7 @@
             bool moveToPrevious(Node* root);
         };
 
-        void updateForNodeRemoval(Node* nodeToBeRemoved, NodePointer&) const;
+        void updateForNodeRemoval(Node& nodeToBeRemoved, NodePointer&) const;
 
         NodePointer m_referenceNode;
         NodePointer m_candidateNode;

Modified: trunk/Source/WebCore/dom/Range.cpp (175835 => 175836)


--- trunk/Source/WebCore/dom/Range.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/Range.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -1050,7 +1050,7 @@
             return;
 
         if (collapsed && newText->parentNode() == container && &container->document() == &ownerDocument())
-            m_end.setToBeforeChild(newText.get());
+            m_end.setToBeforeChild(*newText);
     } else {
         container = m_start.container();
         RefPtr<Node> firstInsertedChild = newNodeType == Node::DOCUMENT_FRAGMENT_NODE ? newNode->firstChild() : newNode;
@@ -1062,7 +1062,7 @@
 
         if (collapsed && numNewChildren && &container->document() == &ownerDocument()) {
             if (firstInsertedChild->parentNode() == container)
-                m_start.setToBeforeChild(firstInsertedChild.get());
+                m_start.setToBeforeChild(*firstInsertedChild);
             if (lastInsertedChild->parentNode() == container)
                 m_end.set(container, lastInsertedChild->computeNodeIndex() + 1, lastInsertedChild.get());
         }
@@ -2060,27 +2060,26 @@
     boundaryNodeChildrenWillBeRemoved(m_end, container);
 }
 
-static inline void boundaryNodeWillBeRemoved(RangeBoundaryPoint& boundary, Node* nodeToBeRemoved)
+static inline void boundaryNodeWillBeRemoved(RangeBoundaryPoint& boundary, Node& nodeToBeRemoved)
 {
-    if (boundary.childBefore() == nodeToBeRemoved) {
+    if (boundary.childBefore() == &nodeToBeRemoved) {
         boundary.childBeforeWillBeRemoved();
         return;
     }
 
     for (Node* n = boundary.container(); n; n = n->parentNode()) {
-        if (n == nodeToBeRemoved) {
+        if (n == &nodeToBeRemoved) {
             boundary.setToBeforeChild(nodeToBeRemoved);
             return;
         }
     }
 }
 
-void Range::nodeWillBeRemoved(Node* node)
+void Range::nodeWillBeRemoved(Node& node)
 {
-    ASSERT(node);
-    ASSERT(&node->document() == &ownerDocument());
-    ASSERT(node != &ownerDocument());
-    ASSERT(node->parentNode());
+    ASSERT(&node.document() == &ownerDocument());
+    ASSERT(&node != &ownerDocument());
+    ASSERT(node.parentNode());
     boundaryNodeWillBeRemoved(m_start, node);
     boundaryNodeWillBeRemoved(m_end, node);
 }

Modified: trunk/Source/WebCore/dom/Range.h (175835 => 175836)


--- trunk/Source/WebCore/dom/Range.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/Range.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -139,7 +139,7 @@
 
     void nodeChildrenChanged(ContainerNode&);
     void nodeChildrenWillBeRemoved(ContainerNode&);
-    void nodeWillBeRemoved(Node*);
+    void nodeWillBeRemoved(Node&);
 
     void textInserted(Node*, unsigned offset, unsigned length);
     void textRemoved(Node*, unsigned offset, unsigned length);

Modified: trunk/Source/WebCore/dom/RangeBoundaryPoint.h (175835 => 175836)


--- trunk/Source/WebCore/dom/RangeBoundaryPoint.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/dom/RangeBoundaryPoint.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -48,7 +48,7 @@
     void set(PassRefPtr<Node> container, int offset, Node* childBefore);
     void setOffset(int offset);
 
-    void setToBeforeChild(Node*);
+    void setToBeforeChild(Node&);
     void setToStartOfNode(PassRefPtr<Node>);
     void setToEndOfNode(PassRefPtr<Node>);
 
@@ -136,12 +136,11 @@
     m_offsetInContainer = offset;
 }
 
-inline void RangeBoundaryPoint::setToBeforeChild(Node* child)
+inline void RangeBoundaryPoint::setToBeforeChild(Node& child)
 {
-    ASSERT(child);
-    ASSERT(child->parentNode());
-    m_childBeforeBoundary = child->previousSibling();
-    m_containerNode = child->parentNode();
+    ASSERT(child.parentNode());
+    m_childBeforeBoundary = child.previousSibling();
+    m_containerNode = child.parentNode();
     m_offsetInContainer = m_childBeforeBoundary ? invalidOffset : 0;
 }
 

Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (175835 => 175836)


--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -423,7 +423,7 @@
     }
 }
 
-void CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren(Position& position, Node* node)
+void CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren(Position& position, Node& node)
 {
     int offset = (position.anchorType() == Position::PositionIsOffsetInAnchor) ? position.offsetInContainerNode() : 0;
     updatePositionForNodeRemoval(position, node);

Modified: trunk/Source/WebCore/editing/CompositeEditCommand.h (175835 => 175836)


--- trunk/Source/WebCore/editing/CompositeEditCommand.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -128,7 +128,7 @@
     void removeNodePreservingChildren(PassRefPtr<Node>, ShouldAssumeContentIsAlwaysEditable = DoNotAssumeContentIsAlwaysEditable);
     void removeNodeAndPruneAncestors(PassRefPtr<Node>);
     void moveRemainingSiblingsToNewParent(Node*, Node* pastLastNodeToMove, PassRefPtr<Element> prpNewParent);
-    void updatePositionForNodeRemovalPreservingChildren(Position&, Node*);
+    void updatePositionForNodeRemovalPreservingChildren(Position&, Node&);
     void prune(PassRefPtr<Node>);
     void replaceTextInNode(PassRefPtr<Text>, unsigned offset, unsigned count, const String& replacementText);
     Position replaceSelectedTextInNode(const String&);

Modified: trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp (175835 => 175836)


--- trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -402,9 +402,9 @@
         m_needPlaceholder = true;
     
     // FIXME: Update the endpoints of the range being deleted.
-    updatePositionForNodeRemoval(m_endingPosition, node.get());
-    updatePositionForNodeRemoval(m_leadingWhitespace, node.get());
-    updatePositionForNodeRemoval(m_trailingWhitespace, node.get());
+    updatePositionForNodeRemoval(m_endingPosition, *node);
+    updatePositionForNodeRemoval(m_leadingWhitespace, *node);
+    updatePositionForNodeRemoval(m_trailingWhitespace, *node);
     
     CompositeEditCommand::removeNode(node, shouldAssumeContentIsAlwaysEditable);
 }
@@ -526,7 +526,7 @@
                 RefPtr<Node> nextNode = NodeTraversal::nextSkippingChildren(node.get());
                 // if we just removed a node from the end container, update end position so the
                 // check above will work
-                updatePositionForNodeRemoval(m_downstreamEnd, node.get());
+                updatePositionForNodeRemoval(m_downstreamEnd, *node);
                 removeNode(node.get());
                 node = nextNode.get();
             } else {
@@ -784,7 +784,7 @@
     while (node != rootNode) {
         if (isRemovableBlock(node)) {
             if (node == m_endingPosition.anchorNode())
-                updatePositionForNodeRemovalPreservingChildren(m_endingPosition, node);
+                updatePositionForNodeRemovalPreservingChildren(m_endingPosition, *node);
             
             CompositeEditCommand::removeNodePreservingChildren(node);
             node = m_endingPosition.anchorNode();

Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (175835 => 175836)


--- trunk/Source/WebCore/editing/FrameSelection.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -390,19 +390,18 @@
 #endif
 }
 
-static bool removingNodeRemovesPosition(Node* node, const Position& position)
+static bool removingNodeRemovesPosition(Node& node, const Position& position)
 {
     if (!position.anchorNode())
         return false;
 
-    if (position.anchorNode() == node)
+    if (position.anchorNode() == &node)
         return true;
 
-    if (!is<Element>(*node))
+    if (!is<Element>(node))
         return false;
 
-    Element* element = downcast<Element>(node);
-    return element->containsIncludingShadowDOM(position.anchorNode());
+    return downcast<Element>(node).containsIncludingShadowDOM(position.anchorNode());
 }
 
 static void clearRenderViewSelection(Node& node)
@@ -413,30 +412,30 @@
         view->clearSelection();
 }
 
-void DragCaretController::nodeWillBeRemoved(Node* node)
+void DragCaretController::nodeWillBeRemoved(Node& node)
 {
-    if (!hasCaret() || (node && !node->inDocument()))
+    if (!hasCaret() || !node.inDocument())
         return;
 
     if (!removingNodeRemovesPosition(node, m_position.deepEquivalent()))
         return;
 
-    clearRenderViewSelection(*node);
+    clearRenderViewSelection(node);
     clear();
 }
 
-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;
@@ -469,7 +468,7 @@
             m_selection.setWithoutValidation(m_selection.end(), m_selection.start());
     } else if (RefPtr<Range> range = m_selection.firstRange()) {
         ExceptionCode ec = 0;
-        Range::CompareResults compareResult = range->compareNode(node, ec);
+        Range::CompareResults compareResult = range->compareNode(&node, ec);
         if (!ec && (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 
@@ -480,10 +479,10 @@
     }
 
     if (clearRenderTreeSelection) {
-        clearRenderViewSelection(*node);
+        clearRenderViewSelection(node);
 
         // Trigger a selection update so the selection will be set again.
-        if (auto* renderView = node->document().renderView()) {
+        if (auto* renderView = node.document().renderView()) {
             m_pendingSelectionUpdate = true;
             renderView->setNeedsLayout();
         }

Modified: trunk/Source/WebCore/editing/FrameSelection.h (175835 => 175836)


--- trunk/Source/WebCore/editing/FrameSelection.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/FrameSelection.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -103,7 +103,7 @@
     void setCaretPosition(const VisiblePosition&);
     WEBCORE_EXPORT void clear() { setCaretPosition(VisiblePosition()); }
 
-    void nodeWillBeRemoved(Node*);
+    void nodeWillBeRemoved(Node&);
 
 private:
     VisiblePosition m_position;
@@ -187,7 +187,7 @@
 
     void debugRenderer(RenderObject*, bool selected) const;
 
-    void nodeWillBeRemoved(Node*);
+    void nodeWillBeRemoved(Node&);
     void textWasReplaced(CharacterData*, unsigned offset, unsigned oldLength, unsigned newLength);
 
     void setCaretVisible(bool caretIsVisible) { setCaretVisibility(caretIsVisible ? Visible : Hidden); }
@@ -276,7 +276,7 @@
 
     bool setSelectionWithoutUpdatingAppearance(const VisibleSelection&, SetSelectionOptions, CursorAlignOnScroll, TextGranularity);
 
-    void respondToNodeModification(Node*, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved);
+    void respondToNodeModification(Node&, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved);
     TextDirection directionOfEnclosingBlock();
     TextDirection directionOfSelection();
 

Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (175835 => 175836)


--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -1391,7 +1391,7 @@
         return;
 
     if (is<Text>(text->previousSibling())) {
-        RefPtr<Text> previous = downcast<Text>(text->previousSibling());
+        Ref<Text> previous(downcast<Text>(*text->previousSibling()));
         insertTextIntoNode(text, 0, previous->data());
 
         if (positionIsOffsetInAnchor)
@@ -1402,27 +1402,27 @@
         if (positionOnlyToBeUpdatedIsOffsetInAnchor) {
             if (positionOnlyToBeUpdated.containerNode() == text)
                 positionOnlyToBeUpdated.moveToOffset(previous->length() + positionOnlyToBeUpdated.offsetInContainerNode());
-            else if (positionOnlyToBeUpdated.containerNode() == previous)
+            else if (positionOnlyToBeUpdated.containerNode() == previous.ptr())
                 positionOnlyToBeUpdated.moveToPosition(text, positionOnlyToBeUpdated.offsetInContainerNode());
         } else
             updatePositionForNodeRemoval(positionOnlyToBeUpdated, previous.get());
 
-        removeNode(previous);
+        removeNode(previous.ptr());
     }
     if (is<Text>(text->nextSibling())) {
-        RefPtr<Text> next = downcast<Text>(text->nextSibling());
+        Ref<Text> next(downcast<Text>(*text->nextSibling()));
         unsigned originalLength = text->length();
         insertTextIntoNode(text, originalLength, next->data());
 
         if (!positionIsOffsetInAnchor)
             updatePositionForNodeRemoval(position, next.get());
 
-        if (positionOnlyToBeUpdatedIsOffsetInAnchor && positionOnlyToBeUpdated.containerNode() == next)
+        if (positionOnlyToBeUpdatedIsOffsetInAnchor && positionOnlyToBeUpdated.containerNode() == next.ptr())
             positionOnlyToBeUpdated.moveToPosition(text, originalLength + positionOnlyToBeUpdated.offsetInContainerNode());
         else
             updatePositionForNodeRemoval(positionOnlyToBeUpdated, next.get());
 
-        removeNode(next);
+        removeNode(next.ptr());
     }
 }
 

Modified: trunk/Source/WebCore/editing/htmlediting.cpp (175835 => 175836)


--- trunk/Source/WebCore/editing/htmlediting.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/htmlediting.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -984,32 +984,32 @@
     return num;
 }
 
-void updatePositionForNodeRemoval(Position& position, Node* node)
+void updatePositionForNodeRemoval(Position& position, Node& node)
 {
     if (position.isNull())
         return;
     switch (position.anchorType()) {
     case Position::PositionIsBeforeChildren:
-        if (node->containsIncludingShadowDOM(position.containerNode()))
-            position = positionInParentBeforeNode(node);
+        if (node.containsIncludingShadowDOM(position.containerNode()))
+            position = positionInParentBeforeNode(&node);
         break;
     case Position::PositionIsAfterChildren:
-        if (node->containsIncludingShadowDOM(position.containerNode()))
-            position = positionInParentBeforeNode(node);
+        if (node.containsIncludingShadowDOM(position.containerNode()))
+            position = positionInParentBeforeNode(&node);
         break;
     case Position::PositionIsOffsetInAnchor:
-        if (position.containerNode() == node->parentNode() && static_cast<unsigned>(position.offsetInContainerNode()) > node->computeNodeIndex())
+        if (position.containerNode() == node.parentNode() && static_cast<unsigned>(position.offsetInContainerNode()) > node.computeNodeIndex())
             position.moveToOffset(position.offsetInContainerNode() - 1);
-        else if (node->containsIncludingShadowDOM(position.containerNode()))
-            position = positionInParentBeforeNode(node);
+        else if (node.containsIncludingShadowDOM(position.containerNode()))
+            position = positionInParentBeforeNode(&node);
         break;
     case Position::PositionIsAfterAnchor:
-        if (node->containsIncludingShadowDOM(position.anchorNode()))
-            position = positionInParentAfterNode(node);
+        if (node.containsIncludingShadowDOM(position.anchorNode()))
+            position = positionInParentAfterNode(&node);
         break;
     case Position::PositionIsBeforeAnchor:
-        if (node->containsIncludingShadowDOM(position.anchorNode()))
-            position = positionInParentBeforeNode(node);
+        if (node.containsIncludingShadowDOM(position.anchorNode()))
+            position = positionInParentBeforeNode(&node);
         break;
     }
 }

Modified: trunk/Source/WebCore/editing/htmlediting.h (175835 => 175836)


--- trunk/Source/WebCore/editing/htmlediting.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/editing/htmlediting.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -170,7 +170,7 @@
 // miscellaneous functions on Position
 
 unsigned numEnclosingMailBlockquotes(const Position&);
-void updatePositionForNodeRemoval(Position&, Node*);
+void updatePositionForNodeRemoval(Position&, Node&);
 
 // -------------------------------------------------------------------------
 // VisiblePosition

Modified: trunk/Source/WebCore/page/EventHandler.cpp (175835 => 175836)


--- trunk/Source/WebCore/page/EventHandler.cpp	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/page/EventHandler.cpp	2014-11-11 00:02:57 UTC (rev 175836)
@@ -503,10 +503,10 @@
     m_didLongPressInvokeContextMenu = false;
 }
 
-void EventHandler::nodeWillBeRemoved(Node* nodeToBeRemoved)
+void EventHandler::nodeWillBeRemoved(Node& nodeToBeRemoved)
 {
-    if (nodeToBeRemoved->contains(m_clickNode.get()))
-        m_clickNode = 0;
+    if (nodeToBeRemoved.contains(m_clickNode.get()))
+        m_clickNode = nullptr;
 }
 
 static void setSelectionIfNeeded(FrameSelection& selection, const VisibleSelection& newSelection)

Modified: trunk/Source/WebCore/page/EventHandler.h (175835 => 175836)


--- trunk/Source/WebCore/page/EventHandler.h	2014-11-10 23:55:56 UTC (rev 175835)
+++ trunk/Source/WebCore/page/EventHandler.h	2014-11-11 00:02:57 UTC (rev 175836)
@@ -125,7 +125,7 @@
     ~EventHandler();
 
     void clear();
-    void nodeWillBeRemoved(Node*);
+    void nodeWillBeRemoved(Node&);
 
 #if ENABLE(DRAG_SUPPORT)
     void updateSelectionForMouseDrag();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to