<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[175836] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/175836">175836</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-11-10 16:02:57 -0800 (Mon, 10 Nov 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>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:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeIteratorcpp">trunk/Source/WebCore/dom/NodeIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeIteratorh">trunk/Source/WebCore/dom/NodeIterator.h</a></li>
<li><a href="#trunkSourceWebCoredomRangecpp">trunk/Source/WebCore/dom/Range.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangeh">trunk/Source/WebCore/dom/Range.h</a></li>
<li><a href="#trunkSourceWebCoredomRangeBoundaryPointh">trunk/Source/WebCore/dom/RangeBoundaryPoint.h</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandh">trunk/Source/WebCore/editing/CompositeEditCommand.h</a></li>
<li><a href="#trunkSourceWebCoreeditingDeleteSelectionCommandcpp">trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectioncpp">trunk/Source/WebCore/editing/FrameSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectionh">trunk/Source/WebCore/editing/FrameSelection.h</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingh">trunk/Source/WebCore/editing/htmlediting.h</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlerh">trunk/Source/WebCore/page/EventHandler.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,3 +1,55 @@
</span><ins>+2014-11-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        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:
+
</ins><span class="cx"> 2014-11-10  Benjamin Poulain  &lt;bpoulain@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix the build when CSS Selectors Level 4 is disabled
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -476,7 +476,7 @@
</span><span class="cx">     if (child.parentNode() != this)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    child.document().nodeWillBeRemoved(&amp;child); // e.g. mutation event listener can create a new range.
</del><ins>+    child.document().nodeWillBeRemoved(child); // e.g. mutation event listener can create a new range.
</ins><span class="cx">     if (is&lt;ContainerNode&gt;(child))
</span><span class="cx">         disconnectSubframesIfNeeded(downcast&lt;ContainerNode&gt;(child), RootAndDescendants);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -3661,19 +3661,19 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto it = m_nodeIterators.begin(), end = m_nodeIterators.end(); it != end; ++it) {
</span><span class="cx">         for (Node* n = container.firstChild(); n; n = n-&gt;nextSibling())
</span><del>-            (*it)-&gt;nodeWillBeRemoved(n);
</del><ins>+            (*it)-&gt;nodeWillBeRemoved(*n);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (Frame* frame = this-&gt;frame()) {
</span><span class="cx">         for (Node* n = container.firstChild(); n; n = n-&gt;nextSibling()) {
</span><del>-            frame-&gt;eventHandler().nodeWillBeRemoved(n);
-            frame-&gt;selection().nodeWillBeRemoved(n);
-            frame-&gt;page()-&gt;dragCaretController().nodeWillBeRemoved(n);
</del><ins>+            frame-&gt;eventHandler().nodeWillBeRemoved(*n);
+            frame-&gt;selection().nodeWillBeRemoved(*n);
+            frame-&gt;page()-&gt;dragCaretController().nodeWillBeRemoved(*n);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Document::nodeWillBeRemoved(Node* n)
</del><ins>+void Document::nodeWillBeRemoved(Node&amp; n)
</ins><span class="cx"> {
</span><span class="cx">     HashSet&lt;NodeIterator*&gt;::const_iterator nodeIteratorsEnd = m_nodeIterators.end();
</span><span class="cx">     for (HashSet&lt;NodeIterator*&gt;::const_iterator it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -796,7 +796,7 @@
</span><span class="cx">     // nodeChildrenWillBeRemoved is used when removing all node children at once.
</span><span class="cx">     void nodeChildrenWillBeRemoved(ContainerNode&amp;);
</span><span class="cx">     // nodeWillBeRemoved is only safe when removing one node at a time.
</span><del>-    void nodeWillBeRemoved(Node*);
</del><ins>+    void nodeWillBeRemoved(Node&amp;);
</ins><span class="cx">     bool canReplaceChild(Node* newChild, Node* oldChild);
</span><span class="cx"> 
</span><span class="cx">     void textInserted(Node*, unsigned offset, unsigned length);
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeIterator.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -154,43 +154,42 @@
</span><span class="cx">     m_referenceNode.node.clear();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NodeIterator::nodeWillBeRemoved(Node* removedNode)
</del><ins>+void NodeIterator::nodeWillBeRemoved(Node&amp; removedNode)
</ins><span class="cx"> {
</span><span class="cx">     updateForNodeRemoval(removedNode, m_candidateNode);
</span><span class="cx">     updateForNodeRemoval(removedNode, m_referenceNode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void NodeIterator::updateForNodeRemoval(Node* removedNode, NodePointer&amp; referenceNode) const
</del><ins>+void NodeIterator::updateForNodeRemoval(Node&amp; removedNode, NodePointer&amp; referenceNode) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_detached);
</span><del>-    ASSERT(removedNode);
-    ASSERT(&amp;root()-&gt;document() == &amp;removedNode-&gt;document());
</del><ins>+    ASSERT(&amp;root()-&gt;document() == &amp;removedNode.document());
</ins><span class="cx"> 
</span><span class="cx">     // Iterator is not affected if the removed node is the reference node and is the root.
</span><span class="cx">     // or if removed node is not the reference node, or the ancestor of the reference node.
</span><del>-    if (!removedNode-&gt;isDescendantOf(root()))
</del><ins>+    if (!removedNode.isDescendantOf(root()))
</ins><span class="cx">         return;
</span><del>-    bool willRemoveReferenceNode = removedNode == referenceNode.node;
-    bool willRemoveReferenceNodeAncestor = referenceNode.node &amp;&amp; referenceNode.node-&gt;isDescendantOf(removedNode);
</del><ins>+    bool willRemoveReferenceNode = &amp;removedNode == referenceNode.node;
+    bool willRemoveReferenceNodeAncestor = referenceNode.node &amp;&amp; referenceNode.node-&gt;isDescendantOf(&amp;removedNode);
</ins><span class="cx">     if (!willRemoveReferenceNode &amp;&amp; !willRemoveReferenceNodeAncestor)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (referenceNode.isPointerBeforeNode) {
</span><del>-        Node* node = NodeTraversal::next(removedNode, root());
</del><ins>+        Node* node = NodeTraversal::next(&amp;removedNode, root());
</ins><span class="cx">         if (node) {
</span><span class="cx">             // Move out from under the node being removed if the new reference
</span><span class="cx">             // node is a descendant of the node being removed.
</span><del>-            while (node &amp;&amp; node-&gt;isDescendantOf(removedNode))
</del><ins>+            while (node &amp;&amp; node-&gt;isDescendantOf(&amp;removedNode))
</ins><span class="cx">                 node = NodeTraversal::next(node, root());
</span><span class="cx">             if (node)
</span><span class="cx">                 referenceNode.node = node;
</span><span class="cx">         } else {
</span><del>-            node = NodeTraversal::previous(removedNode);
</del><ins>+            node = NodeTraversal::previous(&amp;removedNode);
</ins><span class="cx">             if (node) {
</span><span class="cx">                 // Move out from under the node being removed if the reference node is
</span><span class="cx">                 // a descendant of the node being removed.
</span><span class="cx">                 if (willRemoveReferenceNodeAncestor) {
</span><del>-                    while (node &amp;&amp; node-&gt;isDescendantOf(removedNode))
</del><ins>+                    while (node &amp;&amp; node-&gt;isDescendantOf(&amp;removedNode))
</ins><span class="cx">                         node = NodeTraversal::previous(node);
</span><span class="cx">                 }
</span><span class="cx">                 if (node) {
</span><span class="lines">@@ -203,23 +202,23 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     } else {
</span><del>-        Node* node = NodeTraversal::previous(removedNode);
</del><ins>+        Node* node = NodeTraversal::previous(&amp;removedNode);
</ins><span class="cx">         if (node) {
</span><span class="cx">             // Move out from under the node being removed if the reference node is
</span><span class="cx">             // a descendant of the node being removed.
</span><span class="cx">             if (willRemoveReferenceNodeAncestor) {
</span><del>-                while (node &amp;&amp; node-&gt;isDescendantOf(removedNode))
</del><ins>+                while (node &amp;&amp; node-&gt;isDescendantOf(&amp;removedNode))
</ins><span class="cx">                     node = NodeTraversal::previous(node);
</span><span class="cx">             }
</span><span class="cx">             if (node)
</span><span class="cx">                 referenceNode.node = node;
</span><span class="cx">         } else {
</span><span class="cx">             // FIXME: This branch doesn't appear to have any LayoutTests.
</span><del>-            node = NodeTraversal::next(removedNode, root());
</del><ins>+            node = NodeTraversal::next(&amp;removedNode, root());
</ins><span class="cx">             // Move out from under the node being removed if the reference node is
</span><span class="cx">             // a descendant of the node being removed.
</span><span class="cx">             if (willRemoveReferenceNodeAncestor) {
</span><del>-                while (node &amp;&amp; node-&gt;isDescendantOf(removedNode))
</del><ins>+                while (node &amp;&amp; node-&gt;isDescendantOf(&amp;removedNode))
</ins><span class="cx">                     node = NodeTraversal::previous(node);
</span><span class="cx">             }
</span><span class="cx">             if (node)
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeIterator.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">         bool pointerBeforeReferenceNode() const { return m_referenceNode.isPointerBeforeNode; }
</span><span class="cx"> 
</span><span class="cx">         // This function is called before any node is removed from the document tree.
</span><del>-        void nodeWillBeRemoved(Node*);
</del><ins>+        void nodeWillBeRemoved(Node&amp;);
</ins><span class="cx"> 
</span><span class="cx">         // Do not call these functions. They are just scaffolding to support the Objective-C bindings.
</span><span class="cx">         // They operate in the main thread normal world, and they swallow JS exceptions.
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx">             bool moveToPrevious(Node* root);
</span><span class="cx">         };
</span><span class="cx"> 
</span><del>-        void updateForNodeRemoval(Node* nodeToBeRemoved, NodePointer&amp;) const;
</del><ins>+        void updateForNodeRemoval(Node&amp; nodeToBeRemoved, NodePointer&amp;) const;
</ins><span class="cx"> 
</span><span class="cx">         NodePointer m_referenceNode;
</span><span class="cx">         NodePointer m_candidateNode;
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1050,7 +1050,7 @@
</span><span class="cx">             return;
</span><span class="cx"> 
</span><span class="cx">         if (collapsed &amp;&amp; newText-&gt;parentNode() == container &amp;&amp; &amp;container-&gt;document() == &amp;ownerDocument())
</span><del>-            m_end.setToBeforeChild(newText.get());
</del><ins>+            m_end.setToBeforeChild(*newText);
</ins><span class="cx">     } else {
</span><span class="cx">         container = m_start.container();
</span><span class="cx">         RefPtr&lt;Node&gt; firstInsertedChild = newNodeType == Node::DOCUMENT_FRAGMENT_NODE ? newNode-&gt;firstChild() : newNode;
</span><span class="lines">@@ -1062,7 +1062,7 @@
</span><span class="cx"> 
</span><span class="cx">         if (collapsed &amp;&amp; numNewChildren &amp;&amp; &amp;container-&gt;document() == &amp;ownerDocument()) {
</span><span class="cx">             if (firstInsertedChild-&gt;parentNode() == container)
</span><del>-                m_start.setToBeforeChild(firstInsertedChild.get());
</del><ins>+                m_start.setToBeforeChild(*firstInsertedChild);
</ins><span class="cx">             if (lastInsertedChild-&gt;parentNode() == container)
</span><span class="cx">                 m_end.set(container, lastInsertedChild-&gt;computeNodeIndex() + 1, lastInsertedChild.get());
</span><span class="cx">         }
</span><span class="lines">@@ -2060,27 +2060,26 @@
</span><span class="cx">     boundaryNodeChildrenWillBeRemoved(m_end, container);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline void boundaryNodeWillBeRemoved(RangeBoundaryPoint&amp; boundary, Node* nodeToBeRemoved)
</del><ins>+static inline void boundaryNodeWillBeRemoved(RangeBoundaryPoint&amp; boundary, Node&amp; nodeToBeRemoved)
</ins><span class="cx"> {
</span><del>-    if (boundary.childBefore() == nodeToBeRemoved) {
</del><ins>+    if (boundary.childBefore() == &amp;nodeToBeRemoved) {
</ins><span class="cx">         boundary.childBeforeWillBeRemoved();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (Node* n = boundary.container(); n; n = n-&gt;parentNode()) {
</span><del>-        if (n == nodeToBeRemoved) {
</del><ins>+        if (n == &amp;nodeToBeRemoved) {
</ins><span class="cx">             boundary.setToBeforeChild(nodeToBeRemoved);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Range::nodeWillBeRemoved(Node* node)
</del><ins>+void Range::nodeWillBeRemoved(Node&amp; node)
</ins><span class="cx"> {
</span><del>-    ASSERT(node);
-    ASSERT(&amp;node-&gt;document() == &amp;ownerDocument());
-    ASSERT(node != &amp;ownerDocument());
-    ASSERT(node-&gt;parentNode());
</del><ins>+    ASSERT(&amp;node.document() == &amp;ownerDocument());
+    ASSERT(&amp;node != &amp;ownerDocument());
+    ASSERT(node.parentNode());
</ins><span class="cx">     boundaryNodeWillBeRemoved(m_start, node);
</span><span class="cx">     boundaryNodeWillBeRemoved(m_end, node);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx"> 
</span><span class="cx">     void nodeChildrenChanged(ContainerNode&amp;);
</span><span class="cx">     void nodeChildrenWillBeRemoved(ContainerNode&amp;);
</span><del>-    void nodeWillBeRemoved(Node*);
</del><ins>+    void nodeWillBeRemoved(Node&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void textInserted(Node*, unsigned offset, unsigned length);
</span><span class="cx">     void textRemoved(Node*, unsigned offset, unsigned length);
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangeBoundaryPointh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/RangeBoundaryPoint.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     void set(PassRefPtr&lt;Node&gt; container, int offset, Node* childBefore);
</span><span class="cx">     void setOffset(int offset);
</span><span class="cx"> 
</span><del>-    void setToBeforeChild(Node*);
</del><ins>+    void setToBeforeChild(Node&amp;);
</ins><span class="cx">     void setToStartOfNode(PassRefPtr&lt;Node&gt;);
</span><span class="cx">     void setToEndOfNode(PassRefPtr&lt;Node&gt;);
</span><span class="cx"> 
</span><span class="lines">@@ -136,12 +136,11 @@
</span><span class="cx">     m_offsetInContainer = offset;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void RangeBoundaryPoint::setToBeforeChild(Node* child)
</del><ins>+inline void RangeBoundaryPoint::setToBeforeChild(Node&amp; child)
</ins><span class="cx"> {
</span><del>-    ASSERT(child);
-    ASSERT(child-&gt;parentNode());
-    m_childBeforeBoundary = child-&gt;previousSibling();
-    m_containerNode = child-&gt;parentNode();
</del><ins>+    ASSERT(child.parentNode());
+    m_childBeforeBoundary = child.previousSibling();
+    m_containerNode = child.parentNode();
</ins><span class="cx">     m_offsetInContainer = m_childBeforeBoundary ? invalidOffset : 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -423,7 +423,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren(Position&amp; position, Node* node)
</del><ins>+void CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren(Position&amp; position, Node&amp; node)
</ins><span class="cx"> {
</span><span class="cx">     int offset = (position.anchorType() == Position::PositionIsOffsetInAnchor) ? position.offsetInContainerNode() : 0;
</span><span class="cx">     updatePositionForNodeRemoval(position, node);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     void removeNodePreservingChildren(PassRefPtr&lt;Node&gt;, ShouldAssumeContentIsAlwaysEditable = DoNotAssumeContentIsAlwaysEditable);
</span><span class="cx">     void removeNodeAndPruneAncestors(PassRefPtr&lt;Node&gt;);
</span><span class="cx">     void moveRemainingSiblingsToNewParent(Node*, Node* pastLastNodeToMove, PassRefPtr&lt;Element&gt; prpNewParent);
</span><del>-    void updatePositionForNodeRemovalPreservingChildren(Position&amp;, Node*);
</del><ins>+    void updatePositionForNodeRemovalPreservingChildren(Position&amp;, Node&amp;);
</ins><span class="cx">     void prune(PassRefPtr&lt;Node&gt;);
</span><span class="cx">     void replaceTextInNode(PassRefPtr&lt;Text&gt;, unsigned offset, unsigned count, const String&amp; replacementText);
</span><span class="cx">     Position replaceSelectedTextInNode(const String&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDeleteSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -402,9 +402,9 @@
</span><span class="cx">         m_needPlaceholder = true;
</span><span class="cx">     
</span><span class="cx">     // FIXME: Update the endpoints of the range being deleted.
</span><del>-    updatePositionForNodeRemoval(m_endingPosition, node.get());
-    updatePositionForNodeRemoval(m_leadingWhitespace, node.get());
-    updatePositionForNodeRemoval(m_trailingWhitespace, node.get());
</del><ins>+    updatePositionForNodeRemoval(m_endingPosition, *node);
+    updatePositionForNodeRemoval(m_leadingWhitespace, *node);
+    updatePositionForNodeRemoval(m_trailingWhitespace, *node);
</ins><span class="cx">     
</span><span class="cx">     CompositeEditCommand::removeNode(node, shouldAssumeContentIsAlwaysEditable);
</span><span class="cx"> }
</span><span class="lines">@@ -526,7 +526,7 @@
</span><span class="cx">                 RefPtr&lt;Node&gt; nextNode = NodeTraversal::nextSkippingChildren(node.get());
</span><span class="cx">                 // if we just removed a node from the end container, update end position so the
</span><span class="cx">                 // check above will work
</span><del>-                updatePositionForNodeRemoval(m_downstreamEnd, node.get());
</del><ins>+                updatePositionForNodeRemoval(m_downstreamEnd, *node);
</ins><span class="cx">                 removeNode(node.get());
</span><span class="cx">                 node = nextNode.get();
</span><span class="cx">             } else {
</span><span class="lines">@@ -784,7 +784,7 @@
</span><span class="cx">     while (node != rootNode) {
</span><span class="cx">         if (isRemovableBlock(node)) {
</span><span class="cx">             if (node == m_endingPosition.anchorNode())
</span><del>-                updatePositionForNodeRemovalPreservingChildren(m_endingPosition, node);
</del><ins>+                updatePositionForNodeRemovalPreservingChildren(m_endingPosition, *node);
</ins><span class="cx">             
</span><span class="cx">             CompositeEditCommand::removeNodePreservingChildren(node);
</span><span class="cx">             node = m_endingPosition.anchorNode();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -390,19 +390,18 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool removingNodeRemovesPosition(Node* node, const Position&amp; position)
</del><ins>+static bool removingNodeRemovesPosition(Node&amp; node, const Position&amp; position)
</ins><span class="cx"> {
</span><span class="cx">     if (!position.anchorNode())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (position.anchorNode() == node)
</del><ins>+    if (position.anchorNode() == &amp;node)
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><del>-    if (!is&lt;Element&gt;(*node))
</del><ins>+    if (!is&lt;Element&gt;(node))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    Element* element = downcast&lt;Element&gt;(node);
-    return element-&gt;containsIncludingShadowDOM(position.anchorNode());
</del><ins>+    return downcast&lt;Element&gt;(node).containsIncludingShadowDOM(position.anchorNode());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void clearRenderViewSelection(Node&amp; node)
</span><span class="lines">@@ -413,30 +412,30 @@
</span><span class="cx">         view-&gt;clearSelection();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DragCaretController::nodeWillBeRemoved(Node* node)
</del><ins>+void DragCaretController::nodeWillBeRemoved(Node&amp; node)
</ins><span class="cx"> {
</span><del>-    if (!hasCaret() || (node &amp;&amp; !node-&gt;inDocument()))
</del><ins>+    if (!hasCaret() || !node.inDocument())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!removingNodeRemovesPosition(node, m_position.deepEquivalent()))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    clearRenderViewSelection(*node);
</del><ins>+    clearRenderViewSelection(node);
</ins><span class="cx">     clear();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameSelection::nodeWillBeRemoved(Node* node)
</del><ins>+void FrameSelection::nodeWillBeRemoved(Node&amp; node)
</ins><span class="cx"> {
</span><span class="cx">     // There can't be a selection inside a fragment, so if a fragment's node is being removed,
</span><span class="cx">     // the selection in the document that created the fragment needs no adjustment.
</span><del>-    if (isNone() || (node &amp;&amp; !node-&gt;inDocument()))
</del><ins>+    if (isNone() || !node.inDocument())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     respondToNodeModification(node, removingNodeRemovesPosition(node, m_selection.base()), removingNodeRemovesPosition(node, m_selection.extent()),
</span><span class="cx">         removingNodeRemovesPosition(node, m_selection.start()), removingNodeRemovesPosition(node, m_selection.end()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameSelection::respondToNodeModification(Node* node, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved)
</del><ins>+void FrameSelection::respondToNodeModification(Node&amp; node, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved)
</ins><span class="cx"> {
</span><span class="cx">     bool clearRenderTreeSelection = false;
</span><span class="cx">     bool clearDOMTreeSelection = false;
</span><span class="lines">@@ -469,7 +468,7 @@
</span><span class="cx">             m_selection.setWithoutValidation(m_selection.end(), m_selection.start());
</span><span class="cx">     } else if (RefPtr&lt;Range&gt; range = m_selection.firstRange()) {
</span><span class="cx">         ExceptionCode ec = 0;
</span><del>-        Range::CompareResults compareResult = range-&gt;compareNode(node, ec);
</del><ins>+        Range::CompareResults compareResult = range-&gt;compareNode(&amp;node, ec);
</ins><span class="cx">         if (!ec &amp;&amp; (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE)) {
</span><span class="cx">             // If we did nothing here, when this node's renderer was destroyed, the rect that it 
</span><span class="cx">             // occupied would be invalidated, but, selection gaps that change as a result of 
</span><span class="lines">@@ -480,10 +479,10 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (clearRenderTreeSelection) {
</span><del>-        clearRenderViewSelection(*node);
</del><ins>+        clearRenderViewSelection(node);
</ins><span class="cx"> 
</span><span class="cx">         // Trigger a selection update so the selection will be set again.
</span><del>-        if (auto* renderView = node-&gt;document().renderView()) {
</del><ins>+        if (auto* renderView = node.document().renderView()) {
</ins><span class="cx">             m_pendingSelectionUpdate = true;
</span><span class="cx">             renderView-&gt;setNeedsLayout();
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -103,7 +103,7 @@
</span><span class="cx">     void setCaretPosition(const VisiblePosition&amp;);
</span><span class="cx">     WEBCORE_EXPORT void clear() { setCaretPosition(VisiblePosition()); }
</span><span class="cx"> 
</span><del>-    void nodeWillBeRemoved(Node*);
</del><ins>+    void nodeWillBeRemoved(Node&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     VisiblePosition m_position;
</span><span class="lines">@@ -187,7 +187,7 @@
</span><span class="cx"> 
</span><span class="cx">     void debugRenderer(RenderObject*, bool selected) const;
</span><span class="cx"> 
</span><del>-    void nodeWillBeRemoved(Node*);
</del><ins>+    void nodeWillBeRemoved(Node&amp;);
</ins><span class="cx">     void textWasReplaced(CharacterData*, unsigned offset, unsigned oldLength, unsigned newLength);
</span><span class="cx"> 
</span><span class="cx">     void setCaretVisible(bool caretIsVisible) { setCaretVisibility(caretIsVisible ? Visible : Hidden); }
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool setSelectionWithoutUpdatingAppearance(const VisibleSelection&amp;, SetSelectionOptions, CursorAlignOnScroll, TextGranularity);
</span><span class="cx"> 
</span><del>-    void respondToNodeModification(Node*, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved);
</del><ins>+    void respondToNodeModification(Node&amp;, bool baseRemoved, bool extentRemoved, bool startRemoved, bool endRemoved);
</ins><span class="cx">     TextDirection directionOfEnclosingBlock();
</span><span class="cx">     TextDirection directionOfSelection();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1391,7 +1391,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;Text&gt;(text-&gt;previousSibling())) {
</span><del>-        RefPtr&lt;Text&gt; previous = downcast&lt;Text&gt;(text-&gt;previousSibling());
</del><ins>+        Ref&lt;Text&gt; previous(downcast&lt;Text&gt;(*text-&gt;previousSibling()));
</ins><span class="cx">         insertTextIntoNode(text, 0, previous-&gt;data());
</span><span class="cx"> 
</span><span class="cx">         if (positionIsOffsetInAnchor)
</span><span class="lines">@@ -1402,27 +1402,27 @@
</span><span class="cx">         if (positionOnlyToBeUpdatedIsOffsetInAnchor) {
</span><span class="cx">             if (positionOnlyToBeUpdated.containerNode() == text)
</span><span class="cx">                 positionOnlyToBeUpdated.moveToOffset(previous-&gt;length() + positionOnlyToBeUpdated.offsetInContainerNode());
</span><del>-            else if (positionOnlyToBeUpdated.containerNode() == previous)
</del><ins>+            else if (positionOnlyToBeUpdated.containerNode() == previous.ptr())
</ins><span class="cx">                 positionOnlyToBeUpdated.moveToPosition(text, positionOnlyToBeUpdated.offsetInContainerNode());
</span><span class="cx">         } else
</span><span class="cx">             updatePositionForNodeRemoval(positionOnlyToBeUpdated, previous.get());
</span><span class="cx"> 
</span><del>-        removeNode(previous);
</del><ins>+        removeNode(previous.ptr());
</ins><span class="cx">     }
</span><span class="cx">     if (is&lt;Text&gt;(text-&gt;nextSibling())) {
</span><del>-        RefPtr&lt;Text&gt; next = downcast&lt;Text&gt;(text-&gt;nextSibling());
</del><ins>+        Ref&lt;Text&gt; next(downcast&lt;Text&gt;(*text-&gt;nextSibling()));
</ins><span class="cx">         unsigned originalLength = text-&gt;length();
</span><span class="cx">         insertTextIntoNode(text, originalLength, next-&gt;data());
</span><span class="cx"> 
</span><span class="cx">         if (!positionIsOffsetInAnchor)
</span><span class="cx">             updatePositionForNodeRemoval(position, next.get());
</span><span class="cx"> 
</span><del>-        if (positionOnlyToBeUpdatedIsOffsetInAnchor &amp;&amp; positionOnlyToBeUpdated.containerNode() == next)
</del><ins>+        if (positionOnlyToBeUpdatedIsOffsetInAnchor &amp;&amp; positionOnlyToBeUpdated.containerNode() == next.ptr())
</ins><span class="cx">             positionOnlyToBeUpdated.moveToPosition(text, originalLength + positionOnlyToBeUpdated.offsetInContainerNode());
</span><span class="cx">         else
</span><span class="cx">             updatePositionForNodeRemoval(positionOnlyToBeUpdated, next.get());
</span><span class="cx"> 
</span><del>-        removeNode(next);
</del><ins>+        removeNode(next.ptr());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -984,32 +984,32 @@
</span><span class="cx">     return num;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void updatePositionForNodeRemoval(Position&amp; position, Node* node)
</del><ins>+void updatePositionForNodeRemoval(Position&amp; position, Node&amp; node)
</ins><span class="cx"> {
</span><span class="cx">     if (position.isNull())
</span><span class="cx">         return;
</span><span class="cx">     switch (position.anchorType()) {
</span><span class="cx">     case Position::PositionIsBeforeChildren:
</span><del>-        if (node-&gt;containsIncludingShadowDOM(position.containerNode()))
-            position = positionInParentBeforeNode(node);
</del><ins>+        if (node.containsIncludingShadowDOM(position.containerNode()))
+            position = positionInParentBeforeNode(&amp;node);
</ins><span class="cx">         break;
</span><span class="cx">     case Position::PositionIsAfterChildren:
</span><del>-        if (node-&gt;containsIncludingShadowDOM(position.containerNode()))
-            position = positionInParentBeforeNode(node);
</del><ins>+        if (node.containsIncludingShadowDOM(position.containerNode()))
+            position = positionInParentBeforeNode(&amp;node);
</ins><span class="cx">         break;
</span><span class="cx">     case Position::PositionIsOffsetInAnchor:
</span><del>-        if (position.containerNode() == node-&gt;parentNode() &amp;&amp; static_cast&lt;unsigned&gt;(position.offsetInContainerNode()) &gt; node-&gt;computeNodeIndex())
</del><ins>+        if (position.containerNode() == node.parentNode() &amp;&amp; static_cast&lt;unsigned&gt;(position.offsetInContainerNode()) &gt; node.computeNodeIndex())
</ins><span class="cx">             position.moveToOffset(position.offsetInContainerNode() - 1);
</span><del>-        else if (node-&gt;containsIncludingShadowDOM(position.containerNode()))
-            position = positionInParentBeforeNode(node);
</del><ins>+        else if (node.containsIncludingShadowDOM(position.containerNode()))
+            position = positionInParentBeforeNode(&amp;node);
</ins><span class="cx">         break;
</span><span class="cx">     case Position::PositionIsAfterAnchor:
</span><del>-        if (node-&gt;containsIncludingShadowDOM(position.anchorNode()))
-            position = positionInParentAfterNode(node);
</del><ins>+        if (node.containsIncludingShadowDOM(position.anchorNode()))
+            position = positionInParentAfterNode(&amp;node);
</ins><span class="cx">         break;
</span><span class="cx">     case Position::PositionIsBeforeAnchor:
</span><del>-        if (node-&gt;containsIncludingShadowDOM(position.anchorNode()))
-            position = positionInParentBeforeNode(node);
</del><ins>+        if (node.containsIncludingShadowDOM(position.anchorNode()))
+            position = positionInParentBeforeNode(&amp;node);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx"> // miscellaneous functions on Position
</span><span class="cx"> 
</span><span class="cx"> unsigned numEnclosingMailBlockquotes(const Position&amp;);
</span><del>-void updatePositionForNodeRemoval(Position&amp;, Node*);
</del><ins>+void updatePositionForNodeRemoval(Position&amp;, Node&amp;);
</ins><span class="cx"> 
</span><span class="cx"> // -------------------------------------------------------------------------
</span><span class="cx"> // VisiblePosition
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -503,10 +503,10 @@
</span><span class="cx">     m_didLongPressInvokeContextMenu = false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventHandler::nodeWillBeRemoved(Node* nodeToBeRemoved)
</del><ins>+void EventHandler::nodeWillBeRemoved(Node&amp; nodeToBeRemoved)
</ins><span class="cx"> {
</span><del>-    if (nodeToBeRemoved-&gt;contains(m_clickNode.get()))
-        m_clickNode = 0;
</del><ins>+    if (nodeToBeRemoved.contains(m_clickNode.get()))
+        m_clickNode = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void setSelectionIfNeeded(FrameSelection&amp; selection, const VisibleSelection&amp; newSelection)
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.h (175835 => 175836)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -125,7 +125,7 @@
</span><span class="cx">     ~EventHandler();
</span><span class="cx"> 
</span><span class="cx">     void clear();
</span><del>-    void nodeWillBeRemoved(Node*);
</del><ins>+    void nodeWillBeRemoved(Node&amp;);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DRAG_SUPPORT)
</span><span class="cx">     void updateSelectionForMouseDrag();
</span></span></pre>
</div>
</div>

</body>
</html>