<!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>[164662] 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/164662">164662</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2014-02-25 12:42:44 -0800 (Tue, 25 Feb 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/164638">r164638</a>.
http://trac.webkit.org/changeset/164638
https://bugs.webkit.org/show_bug.cgi?id=129321

Broke Windows build. (Requested by bfulgham on #webkit).

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(WebCore::ChildNodesLazySnapshot::hasSnapshot):
* dom/Element.cpp:
(WebCore::ensureAttrNodeListForElement):
(WebCore::Element::attributes):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/ElementRareData.h:
(WebCore::ElementRareData::create):
(WebCore::ElementRareData::setAttributeMap):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::create):
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
* dom/MutationObserverRegistration.h:
* dom/NamedNodeMap.h:
(WebCore::NamedNodeMap::create):
(WebCore::NamedNodeMap::NamedNodeMap):
* dom/Node.cpp:
(WebCore::Node::ensureRareData):
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::create):
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeMutationObserverData::create):
(WebCore::NodeMutationObserverData::NodeMutationObserverData):
(WebCore::NodeRareData::create):
(WebCore::NodeRareData::clearNodeLists):
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
(WebCore::NodeRareData::NodeRareData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodeh">trunk/Source/WebCore/dom/ContainerNode.h</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementIteratorAssertionsh">trunk/Source/WebCore/dom/ElementIteratorAssertions.h</a></li>
<li><a href="#trunkSourceWebCoredomElementRareDatah">trunk/Source/WebCore/dom/ElementRareData.h</a></li>
<li><a href="#trunkSourceWebCoredomMutationObserverRegistrationcpp">trunk/Source/WebCore/dom/MutationObserverRegistration.cpp</a></li>
<li><a href="#trunkSourceWebCoredomMutationObserverRegistrationh">trunk/Source/WebCore/dom/MutationObserverRegistration.h</a></li>
<li><a href="#trunkSourceWebCoredomNamedNodeMaph">trunk/Source/WebCore/dom/NamedNodeMap.h</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeRareDatah">trunk/Source/WebCore/dom/NodeRareData.h</a></li>
<li><a href="#trunkSourceWebCoredomStyledElementcpp">trunk/Source/WebCore/dom/StyledElement.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/ChangeLog        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -1,3 +1,53 @@
</span><ins>+2014-02-25  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r164638.
+        http://trac.webkit.org/changeset/164638
+        https://bugs.webkit.org/show_bug.cgi?id=129321
+
+        Broke Windows build. (Requested by bfulgham on #webkit).
+
+        * dom/ContainerNode.h:
+        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
+        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
+        * dom/Element.cpp:
+        (WebCore::ensureAttrNodeListForElement):
+        (WebCore::Element::attributes):
+        * dom/ElementIteratorAssertions.h:
+        (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
+        * dom/ElementRareData.h:
+        (WebCore::ElementRareData::create):
+        (WebCore::ElementRareData::setAttributeMap):
+        * dom/MutationObserverRegistration.cpp:
+        (WebCore::MutationObserverRegistration::create):
+        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
+        (WebCore::MutationObserverRegistration::clearTransientRegistrations):
+        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
+        * dom/MutationObserverRegistration.h:
+        * dom/NamedNodeMap.h:
+        (WebCore::NamedNodeMap::create):
+        (WebCore::NamedNodeMap::NamedNodeMap):
+        * dom/Node.cpp:
+        (WebCore::Node::ensureRareData):
+        (WebCore::Node::didMoveToNewDocument):
+        (WebCore::Node::ensureEventTargetData):
+        (WebCore::Node::mutationObserverRegistry):
+        (WebCore::Node::registerMutationObserver):
+        (WebCore::Node::unregisterMutationObserver):
+        (WebCore::Node::notifyMutationObserversNodeWillDetach):
+        * dom/Node.h:
+        * dom/NodeRareData.h:
+        (WebCore::NodeListsNodeData::create):
+        (WebCore::NodeListsNodeData::NodeListsNodeData):
+        (WebCore::NodeMutationObserverData::create):
+        (WebCore::NodeMutationObserverData::NodeMutationObserverData):
+        (WebCore::NodeRareData::create):
+        (WebCore::NodeRareData::clearNodeLists):
+        (WebCore::NodeRareData::ensureNodeLists):
+        (WebCore::NodeRareData::ensureMutationObserverData):
+        (WebCore::NodeRareData::NodeRareData):
+        * dom/StyledElement.cpp:
+        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
+
</ins><span class="cx"> 2014-02-25  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [iOS] Show status image when playing video to external device
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/ContainerNode.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -26,7 +26,8 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCodePlaceholder.h&quot;
</span><span class="cx"> #include &quot;Node.h&quot;
</span><del>-#include &lt;memory&gt;
</del><ins>+
+#include &lt;wtf/OwnPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -287,7 +288,7 @@
</span><span class="cx">     {
</span><span class="cx">         if (hasSnapshot())
</span><span class="cx">             return;
</span><del>-        m_childNodes = std::make_unique&lt;Vector&lt;RefPtr&lt;Node&gt;&gt;&gt;();
</del><ins>+        m_childNodes = adoptPtr(new Vector&lt;RefPtr&lt;Node&gt;&gt;());
</ins><span class="cx">         Node* node = m_currentNode.get();
</span><span class="cx">         while (node) {
</span><span class="cx">             m_childNodes-&gt;append(node);
</span><span class="lines">@@ -296,7 +297,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     ChildNodesLazySnapshot* nextSnapshot() { return m_nextSnapshot; }
</span><del>-    bool hasSnapshot() { return !!m_childNodes; }
</del><ins>+    bool hasSnapshot() { return !!m_childNodes.get(); }
</ins><span class="cx"> 
</span><span class="cx">     static void takeChildNodesLazySnapshot()
</span><span class="cx">     {
</span><span class="lines">@@ -312,7 +313,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; m_currentNode;
</span><span class="cx">     unsigned m_currentIndex;
</span><del>-    std::unique_ptr&lt;Vector&lt;RefPtr&lt;Node&gt;&gt;&gt; m_childNodes; // Lazily instantiated.
</del><ins>+    OwnPtr&lt;Vector&lt;RefPtr&lt;Node&gt;&gt;&gt; m_childNodes; // Lazily instantiated.
</ins><span class="cx">     ChildNodesLazySnapshot* m_nextSnapshot;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/Element.cpp        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -78,7 +78,6 @@
</span><span class="cx"> #include &quot;XMLNSNames.h&quot;
</span><span class="cx"> #include &quot;XMLNames.h&quot;
</span><span class="cx"> #include &quot;htmlediting.h&quot;
</span><del>-#include &lt;memory&gt;
</del><span class="cx"> #include &lt;wtf/BitVector.h&gt;
</span><span class="cx"> #include &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span><span class="lines">@@ -94,7 +93,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> typedef Vector&lt;RefPtr&lt;Attr&gt;&gt; AttrNodeList;
</span><del>-typedef HashMap&lt;Element*, std::unique_ptr&lt;AttrNodeList&gt;&gt; AttrNodeListMap;
</del><ins>+typedef HashMap&lt;Element*, OwnPtr&lt;AttrNodeList&gt;&gt; AttrNodeListMap;
</ins><span class="cx"> 
</span><span class="cx"> static AttrNodeListMap&amp; attrNodeListMap()
</span><span class="cx"> {
</span><span class="lines">@@ -118,7 +117,7 @@
</span><span class="cx">     }
</span><span class="cx">     ASSERT(!attrNodeListMap().contains(element));
</span><span class="cx">     element-&gt;setHasSyntheticAttrChildNodes(true);
</span><del>-    AttrNodeListMap::AddResult result = attrNodeListMap().add(element, std::make_unique&lt;AttrNodeList&gt;());
</del><ins>+    AttrNodeListMap::AddResult result = attrNodeListMap().add(element, adoptPtr(new AttrNodeList));
</ins><span class="cx">     return *result.iterator-&gt;value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -352,7 +351,7 @@
</span><span class="cx">     if (NamedNodeMap* attributeMap = rareData.attributeMap())
</span><span class="cx">         return attributeMap;
</span><span class="cx"> 
</span><del>-    rareData.setAttributeMap(std::make_unique&lt;NamedNodeMap&gt;(const_cast&lt;Element&amp;&gt;(*this)));
</del><ins>+    rareData.setAttributeMap(NamedNodeMap::create(const_cast&lt;Element&amp;&gt;(*this)));
</ins><span class="cx">     return rareData.attributeMap();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementIteratorAssertionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ElementIteratorAssertions.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ElementIteratorAssertions.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/ElementIteratorAssertions.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;Element.h&quot;
</span><del>-#include &lt;memory&gt;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -42,7 +41,7 @@
</span><span class="cx"> private:
</span><span class="cx">     const Document* m_document;
</span><span class="cx">     uint64_t m_initialDOMTreeVersion;
</span><del>-    std::unique_ptr&lt;NoEventDispatchAssertion&gt; m_noEventDispatchAssertion;
</del><ins>+    OwnPtr&lt;NoEventDispatchAssertion&gt; m_noEventDispatchAssertion;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> inline ElementIteratorAssertions::ElementIteratorAssertions()
</span><span class="lines">@@ -54,7 +53,7 @@
</span><span class="cx"> inline ElementIteratorAssertions::ElementIteratorAssertions(const Element* first)
</span><span class="cx">     : m_document(first ? &amp;first-&gt;document() : nullptr)
</span><span class="cx">     , m_initialDOMTreeVersion(m_document ? m_document-&gt;domTreeVersion() : 0)
</span><del>-    , m_noEventDispatchAssertion(m_document ? std::make_unique&lt;NoEventDispatchAssertion&gt;() : nullptr)
</del><ins>+    , m_noEventDispatchAssertion(m_document ? adoptPtr(new NoEventDispatchAssertion) : nullptr)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementRareDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ElementRareData.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ElementRareData.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/ElementRareData.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -30,13 +30,14 @@
</span><span class="cx"> #include &quot;RenderElement.h&quot;
</span><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><span class="cx"> #include &quot;StyleInheritedData.h&quot;
</span><del>-#include &lt;memory&gt;
</del><ins>+#include &lt;wtf/OwnPtr.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class ElementRareData : public NodeRareData {
</span><span class="cx"> public:
</span><del>-    explicit ElementRareData(RenderElement*);
</del><ins>+    static PassOwnPtr&lt;ElementRareData&gt; create(RenderElement* renderer) { return adoptPtr(new ElementRareData(renderer)); }
+
</ins><span class="cx">     ~ElementRareData();
</span><span class="cx"> 
</span><span class="cx">     void setBeforePseudoElement(PassRefPtr&lt;PseudoElement&gt;);
</span><span class="lines">@@ -92,7 +93,7 @@
</span><span class="cx">     void setShadowRoot(PassRefPtr&lt;ShadowRoot&gt; shadowRoot) { m_shadowRoot = shadowRoot; }
</span><span class="cx"> 
</span><span class="cx">     NamedNodeMap* attributeMap() const { return m_attributeMap.get(); }
</span><del>-    void setAttributeMap(std::unique_ptr&lt;NamedNodeMap&gt; attributeMap) { m_attributeMap = std::move(attributeMap); }
</del><ins>+    void setAttributeMap(PassOwnPtr&lt;NamedNodeMap&gt; attributeMap) { m_attributeMap = attributeMap; }
</ins><span class="cx"> 
</span><span class="cx">     RenderStyle* computedStyle() const { return m_computedStyle.get(); }
</span><span class="cx">     void setComputedStyle(PassRef&lt;RenderStyle&gt; computedStyle) { m_computedStyle = std::move(computedStyle); }
</span><span class="lines">@@ -149,11 +150,12 @@
</span><span class="cx">     std::unique_ptr&lt;DatasetDOMStringMap&gt; m_dataset;
</span><span class="cx">     std::unique_ptr&lt;ClassList&gt; m_classList;
</span><span class="cx">     RefPtr&lt;ShadowRoot&gt; m_shadowRoot;
</span><del>-    std::unique_ptr&lt;NamedNodeMap&gt; m_attributeMap;
</del><ins>+    OwnPtr&lt;NamedNodeMap&gt; m_attributeMap;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;PseudoElement&gt; m_beforePseudoElement;
</span><span class="cx">     RefPtr&lt;PseudoElement&gt; m_afterPseudoElement;
</span><span class="cx"> 
</span><ins>+    explicit ElementRareData(RenderElement*);
</ins><span class="cx">     void releasePseudoElement(PseudoElement*);
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomMutationObserverRegistrationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MutationObserverRegistration.cpp (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MutationObserverRegistration.cpp        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/MutationObserverRegistration.cpp        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -36,6 +36,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+PassOwnPtr&lt;MutationObserverRegistration&gt; MutationObserverRegistration::create(PassRefPtr&lt;MutationObserver&gt; observer, Node* registrationNode, MutationObserverOptions options, const HashSet&lt;AtomicString&gt;&amp; attributeFilter)
+{
+    return adoptPtr(new MutationObserverRegistration(observer, registrationNode, options, attributeFilter));
+}
+
</ins><span class="cx"> MutationObserverRegistration::MutationObserverRegistration(PassRefPtr&lt;MutationObserver&gt; observer, Node* registrationNode, MutationObserverOptions options, const HashSet&lt;AtomicString&gt;&amp; attributeFilter)
</span><span class="cx">     : m_observer(observer)
</span><span class="cx">     , m_registrationNode(registrationNode)
</span><span class="lines">@@ -67,7 +72,7 @@
</span><span class="cx">     m_observer-&gt;setHasTransientRegistration();
</span><span class="cx"> 
</span><span class="cx">     if (!m_transientRegistrationNodes) {
</span><del>-        m_transientRegistrationNodes = std::make_unique&lt;NodeHashSet&gt;();
</del><ins>+        m_transientRegistrationNodes = adoptPtr(new NodeHashSet);
</ins><span class="cx"> 
</span><span class="cx">         ASSERT(!m_registrationNodeKeepAlive);
</span><span class="cx">         m_registrationNodeKeepAlive = m_registrationNode; // Balanced in clearTransientRegistrations.
</span><span class="lines">@@ -82,10 +87,10 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    for (auto&amp; iter : *m_transientRegistrationNodes)
-        iter-&gt;unregisterTransientMutationObserver(this);
</del><ins>+    for (NodeHashSet::iterator iter = m_transientRegistrationNodes-&gt;begin(); iter != m_transientRegistrationNodes-&gt;end(); ++iter)
+        (*iter)-&gt;unregisterTransientMutationObserver(this);
</ins><span class="cx"> 
</span><del>-    m_transientRegistrationNodes = nullptr;
</del><ins>+    m_transientRegistrationNodes.clear();
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(m_registrationNodeKeepAlive);
</span><span class="cx">     m_registrationNodeKeepAlive = 0; // Balanced in observeSubtreeNodeWillDetach.
</span><span class="lines">@@ -121,8 +126,8 @@
</span><span class="cx">     nodes.add(m_registrationNode);
</span><span class="cx">     if (!m_transientRegistrationNodes)
</span><span class="cx">         return;
</span><del>-    for (auto&amp; iter : *m_transientRegistrationNodes)
-        nodes.add(iter.get());
</del><ins>+    for (NodeHashSet::const_iterator iter = m_transientRegistrationNodes-&gt;begin(); iter != m_transientRegistrationNodes-&gt;end(); ++iter)
+        nodes.add(iter-&gt;get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomMutationObserverRegistrationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/MutationObserverRegistration.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/MutationObserverRegistration.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/MutationObserverRegistration.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #define MutationObserverRegistration_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;MutationObserver.h&quot;
</span><del>-#include &lt;memory&gt;
</del><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><span class="cx"> #include &lt;wtf/text/AtomicString.h&gt;
</span><span class="cx"> #include &lt;wtf/text/AtomicStringHash.h&gt;
</span><span class="lines">@@ -43,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx"> class MutationObserverRegistration {
</span><span class="cx"> public:
</span><del>-    MutationObserverRegistration(PassRefPtr&lt;MutationObserver&gt;, Node*, MutationObserverOptions, const HashSet&lt;AtomicString&gt;&amp; attributeFilter);
</del><ins>+    static PassOwnPtr&lt;MutationObserverRegistration&gt; create(PassRefPtr&lt;MutationObserver&gt;, Node*, MutationObserverOptions, const HashSet&lt;AtomicString&gt;&amp; attributeFilter);
</ins><span class="cx">     ~MutationObserverRegistration();
</span><span class="cx"> 
</span><span class="cx">     void resetObservation(MutationObserverOptions, const HashSet&lt;AtomicString&gt;&amp; attributeFilter);
</span><span class="lines">@@ -62,11 +61,13 @@
</span><span class="cx">     void addRegistrationNodesToSet(HashSet&lt;Node*&gt;&amp;) const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    MutationObserverRegistration(PassRefPtr&lt;MutationObserver&gt;, Node*, MutationObserverOptions, const HashSet&lt;AtomicString&gt;&amp; attributeFilter);
+
</ins><span class="cx">     RefPtr&lt;MutationObserver&gt; m_observer;
</span><span class="cx">     Node* m_registrationNode;
</span><span class="cx">     RefPtr&lt;Node&gt; m_registrationNodeKeepAlive;
</span><span class="cx">     typedef HashSet&lt;RefPtr&lt;Node&gt;&gt; NodeHashSet;
</span><del>-    std::unique_ptr&lt;NodeHashSet&gt; m_transientRegistrationNodes;
</del><ins>+    OwnPtr&lt;NodeHashSet&gt; m_transientRegistrationNodes;
</ins><span class="cx"> 
</span><span class="cx">     MutationObserverOptions m_options;
</span><span class="cx">     HashSet&lt;AtomicString&gt; m_attributeFilter;
</span></span></pre></div>
<a id="trunkSourceWebCoredomNamedNodeMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NamedNodeMap.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NamedNodeMap.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/NamedNodeMap.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #define NamedNodeMap_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ScriptWrappable.h&quot;
</span><ins>+#include &lt;wtf/PassOwnPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/AtomicString.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -40,10 +41,9 @@
</span><span class="cx">     WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx">     friend class Element;
</span><span class="cx"> public:
</span><del>-    explicit NamedNodeMap(Element&amp; element)
-        : m_element(element)
</del><ins>+    static PassOwnPtr&lt;NamedNodeMap&gt; create(Element&amp; element)
</ins><span class="cx">     {
</span><del>-        // Only supports NamedNodeMaps with Element associated, DocumentType.entities and DocumentType.notations are not supported yet.
</del><ins>+        return adoptPtr(new NamedNodeMap(element));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     void ref();
</span><span class="lines">@@ -67,6 +67,12 @@
</span><span class="cx">     Element* element() const { return &amp;m_element; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    explicit NamedNodeMap(Element&amp; element)
+        : m_element(element)
+    {
+        // Only supports NamedNodeMaps with Element associated, DocumentType.entities and DocumentType.notations are not supported yet.
+    }
+
</ins><span class="cx">     Element&amp; m_element;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/Node.cpp        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -339,9 +339,9 @@
</span><span class="cx"> 
</span><span class="cx">     NodeRareData* data;
</span><span class="cx">     if (isElementNode())
</span><del>-        data = new ElementRareData(toRenderElement(m_data.m_renderer));
</del><ins>+        data = ElementRareData::create(toRenderElement(m_data.m_renderer)).leakPtr();
</ins><span class="cx">     else
</span><del>-        data = new NodeRareData(m_data.m_renderer);
</del><ins>+        data = NodeRareData::create(m_data.m_renderer).leakPtr();
</ins><span class="cx">     ASSERT(data);
</span><span class="cx"> 
</span><span class="cx">     m_data.m_rareData = data;
</span><span class="lines">@@ -1766,7 +1766,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt;* registry = mutationObserverRegistry()) {
</del><ins>+    if (Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt;* registry = mutationObserverRegistry()) {
</ins><span class="cx">         for (size_t i = 0; i &lt; registry-&gt;size(); ++i) {
</span><span class="cx">             document().addMutationObserverTypes(registry-&gt;at(i)-&gt;mutationTypes());
</span><span class="cx">         }
</span><span class="lines">@@ -1863,7 +1863,7 @@
</span><span class="cx">     return tryRemoveEventListener(this, eventType, listener, useCapture);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-typedef HashMap&lt;Node*, std::unique_ptr&lt;EventTargetData&gt;&gt; EventTargetDataMap;
</del><ins>+typedef HashMap&lt;Node*, OwnPtr&lt;EventTargetData&gt;&gt; EventTargetDataMap;
</ins><span class="cx"> 
</span><span class="cx"> static EventTargetDataMap&amp; eventTargetDataMap()
</span><span class="cx"> {
</span><span class="lines">@@ -1882,7 +1882,7 @@
</span><span class="cx">         return *eventTargetDataMap().get(this);
</span><span class="cx">     setHasEventTargetData(true);
</span><span class="cx">     EventTargetData* data = new EventTargetData;
</span><del>-    eventTargetDataMap().set(this, std::unique_ptr&lt;EventTargetData&gt;(data));
</del><ins>+    eventTargetDataMap().set(this, adoptPtr(data));
</ins><span class="cx">     return *data;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1891,7 +1891,7 @@
</span><span class="cx">     eventTargetDataMap().remove(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt;* Node::mutationObserverRegistry()
</del><ins>+Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt;* Node::mutationObserverRegistry()
</ins><span class="cx"> {
</span><span class="cx">     if (!hasRareData())
</span><span class="cx">         return 0;
</span><span class="lines">@@ -1941,7 +1941,7 @@
</span><span class="cx"> void Node::registerMutationObserver(MutationObserver* observer, MutationObserverOptions options, const HashSet&lt;AtomicString&gt;&amp; attributeFilter)
</span><span class="cx"> {
</span><span class="cx">     MutationObserverRegistration* registration = 0;
</span><del>-    Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt;&amp; registry = ensureRareData().ensureMutationObserverData().registry;
</del><ins>+    Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt;&amp; registry = ensureRareData().ensureMutationObserverData().registry;
</ins><span class="cx">     for (size_t i = 0; i &lt; registry.size(); ++i) {
</span><span class="cx">         if (registry[i]-&gt;observer() == observer) {
</span><span class="cx">             registration = registry[i].get();
</span><span class="lines">@@ -1950,7 +1950,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!registration) {
</span><del>-        registry.append(std::make_unique&lt;MutationObserverRegistration&gt;(observer, this, options, attributeFilter));
</del><ins>+        registry.append(MutationObserverRegistration::create(observer, this, options, attributeFilter));
</ins><span class="cx">         registration = registry.last().get();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1959,22 +1959,17 @@
</span><span class="cx"> 
</span><span class="cx"> void Node::unregisterMutationObserver(MutationObserverRegistration* registration)
</span><span class="cx"> {
</span><del>-    Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt;* registry = mutationObserverRegistry();
</del><ins>+    Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt;* registry = mutationObserverRegistry();
</ins><span class="cx">     ASSERT(registry);
</span><span class="cx">     if (!registry)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    size_t index = 0;
-    for (const auto&amp; storedRegistration : *registry) {
-        if (storedRegistration.get() == registration) {
-            registry-&gt;remove(index);
-            return;
-        }
</del><ins>+    size_t index = registry-&gt;find(registration);
+    ASSERT(index != notFound);
+    if (index == notFound)
+        return;
</ins><span class="cx"> 
</span><del>-        index++;
-    }
-
-    ASSERT_NOT_REACHED();
</del><ins>+    registry-&gt;remove(index);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Node::registerTransientMutationObserver(MutationObserverRegistration* registration)
</span><span class="lines">@@ -1999,7 +1994,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     for (Node* node = parentNode(); node; node = node-&gt;parentNode()) {
</span><del>-        if (Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt;* registry = node-&gt;mutationObserverRegistry()) {
</del><ins>+        if (Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt;* registry = node-&gt;mutationObserverRegistry()) {
</ins><span class="cx">             const size_t size = registry-&gt;size();
</span><span class="cx">             for (size_t i = 0; i &lt; size; ++i)
</span><span class="cx">                 registry-&gt;at(i)-&gt;observedSubtreeNodeWillDetach(this);
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/Node.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> #include &quot;SimulatedClickOptions.h&quot;
</span><span class="cx"> #include &quot;TreeScope.h&quot;
</span><span class="cx"> #include &quot;TreeShared.h&quot;
</span><del>-#include &lt;memory&gt;
</del><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/ListHashSet.h&gt;
</span><span class="cx"> #include &lt;wtf/text/AtomicString.h&gt;
</span><span class="lines">@@ -675,7 +674,7 @@
</span><span class="cx"> 
</span><span class="cx">     void trackForDebugging();
</span><span class="cx"> 
</span><del>-    Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt;* mutationObserverRegistry();
</del><ins>+    Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt;* mutationObserverRegistry();
</ins><span class="cx">     HashSet&lt;MutationObserverRegistration*&gt;* transientMutationObserverRegistry();
</span><span class="cx"> 
</span><span class="cx">     mutable uint32_t m_nodeFlags;
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeRareDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeRareData.h (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeRareData.h        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/NodeRareData.h        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -36,8 +36,9 @@
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx"> #include &quot;TextTrack.h&quot;
</span><span class="cx"> #endif
</span><del>-#include &lt;memory&gt;
</del><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><ins>+#include &lt;wtf/OwnPtr.h&gt;
+#include &lt;wtf/PassOwnPtr.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/AtomicString.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -50,11 +51,6 @@
</span><span class="cx"> class NodeListsNodeData {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(NodeListsNodeData); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    NodeListsNodeData()
-        : m_childNodeList(nullptr)
-        , m_emptyChildNodeList(nullptr)
-    { }
-
</del><span class="cx">     void clearChildNodeListCache()
</span><span class="cx">     {
</span><span class="cx">         if (m_childNodeList)
</span><span class="lines">@@ -211,6 +207,11 @@
</span><span class="cx">         m_cachedCollections.remove(namedCollectionKey(collection-&gt;type(), name));
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    static PassOwnPtr&lt;NodeListsNodeData&gt; create()
+    {
+        return adoptPtr(new NodeListsNodeData);
+    }
+
</ins><span class="cx">     void invalidateCaches(const QualifiedName* attrName = 0);
</span><span class="cx">     bool isEmpty() const
</span><span class="cx">     {
</span><span class="lines">@@ -255,6 +256,11 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><ins>+    NodeListsNodeData()
+        : m_childNodeList(nullptr)
+        , m_emptyChildNodeList(nullptr)
+    { }
+
</ins><span class="cx">     std::pair&lt;unsigned char, AtomicString&gt; namedCollectionKey(CollectionType type, const AtomicString&amp; name)
</span><span class="cx">     {
</span><span class="cx">         return std::pair&lt;unsigned char, AtomicString&gt;(type, name);
</span><span class="lines">@@ -280,26 +286,26 @@
</span><span class="cx"> class NodeMutationObserverData {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(NodeMutationObserverData); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    NodeMutationObserverData() = default;
-    Vector&lt;std::unique_ptr&lt;MutationObserverRegistration&gt;&gt; registry;
</del><ins>+    Vector&lt;OwnPtr&lt;MutationObserverRegistration&gt;&gt; registry;
</ins><span class="cx">     HashSet&lt;MutationObserverRegistration*&gt; transientRegistry;
</span><ins>+
+    static PassOwnPtr&lt;NodeMutationObserverData&gt; create() { return adoptPtr(new NodeMutationObserverData); }
+
+private:
+    NodeMutationObserverData() { }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class NodeRareData : public NodeRareDataBase {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(NodeRareData); WTF_MAKE_FAST_ALLOCATED;
</span><span class="cx"> public:
</span><del>-    NodeRareData(RenderObject* renderer)
-        : NodeRareDataBase(renderer)
-        , m_connectedFrameCount(0)
-    { }
</del><ins>+    static PassOwnPtr&lt;NodeRareData&gt; create(RenderObject* renderer) { return adoptPtr(new NodeRareData(renderer)); }
</ins><span class="cx"> 
</span><del>-
-    void clearNodeLists() { m_nodeLists = nullptr; }
</del><ins>+    void clearNodeLists() { m_nodeLists.clear(); }
</ins><span class="cx">     NodeListsNodeData* nodeLists() const { return m_nodeLists.get(); }
</span><span class="cx">     NodeListsNodeData&amp; ensureNodeLists()
</span><span class="cx">     {
</span><span class="cx">         if (!m_nodeLists)
</span><del>-            m_nodeLists = std::make_unique&lt;NodeListsNodeData&gt;();
</del><ins>+            m_nodeLists = NodeListsNodeData::create();
</ins><span class="cx">         return *m_nodeLists;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -307,7 +313,7 @@
</span><span class="cx">     NodeMutationObserverData&amp; ensureMutationObserverData()
</span><span class="cx">     {
</span><span class="cx">         if (!m_mutationObserverData)
</span><del>-            m_mutationObserverData = std::make_unique&lt;NodeMutationObserverData&gt;();
</del><ins>+            m_mutationObserverData = NodeMutationObserverData::create();
</ins><span class="cx">         return *m_mutationObserverData;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -323,11 +329,17 @@
</span><span class="cx">         m_connectedFrameCount -= amount;
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+protected:
+    NodeRareData(RenderObject* renderer)
+        : NodeRareDataBase(renderer)
+        , m_connectedFrameCount(0)
+    { }
+
</ins><span class="cx"> private:
</span><span class="cx">     unsigned m_connectedFrameCount : 10; // Must fit Page::maxNumberOfFrames.
</span><span class="cx"> 
</span><del>-    std::unique_ptr&lt;NodeListsNodeData&gt; m_nodeLists;
-    std::unique_ptr&lt;NodeMutationObserverData&gt; m_mutationObserverData;
</del><ins>+    OwnPtr&lt;NodeListsNodeData&gt; m_nodeLists;
+    OwnPtr&lt;NodeMutationObserverData&gt; m_mutationObserverData;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> inline bool NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList(Node&amp; ownerNode)
</span></span></pre></div>
<a id="trunkSourceWebCoredomStyledElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/StyledElement.cpp (164661 => 164662)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/StyledElement.cpp        2014-02-25 20:29:58 UTC (rev 164661)
+++ trunk/Source/WebCore/dom/StyledElement.cpp        2014-02-25 20:42:44 UTC (rev 164662)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     RefPtr&lt;StyleProperties&gt; value;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-typedef HashMap&lt;unsigned, std::unique_ptr&lt;PresentationAttributeCacheEntry&gt;, AlreadyHashed&gt; PresentationAttributeCache;
</del><ins>+typedef HashMap&lt;unsigned, OwnPtr&lt;PresentationAttributeCacheEntry&gt;, AlreadyHashed&gt; PresentationAttributeCache;
</ins><span class="cx">     
</span><span class="cx"> static bool operator!=(const PresentationAttributeCacheKey&amp; a, const PresentationAttributeCacheKey&amp; b)
</span><span class="cx"> {
</span><span class="lines">@@ -346,7 +346,7 @@
</span><span class="cx">     if (!cacheHash || cacheIterator-&gt;value)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    auto newEntry = std::make_unique&lt;PresentationAttributeCacheEntry&gt;();
</del><ins>+    OwnPtr&lt;PresentationAttributeCacheEntry&gt; newEntry = adoptPtr(new PresentationAttributeCacheEntry);
</ins><span class="cx">     newEntry-&gt;key = cacheKey;
</span><span class="cx">     newEntry-&gt;value = style.release();
</span><span class="cx"> 
</span><span class="lines">@@ -354,9 +354,9 @@
</span><span class="cx">     if (presentationAttributeCache().size() &gt; presentationAttributeCacheMaximumSize) {
</span><span class="cx">         // Start building from scratch if the cache ever gets big.
</span><span class="cx">         presentationAttributeCache().clear();
</span><del>-        presentationAttributeCache().set(cacheHash, std::move(newEntry));
</del><ins>+        presentationAttributeCache().set(cacheHash, newEntry.release());
</ins><span class="cx">     } else
</span><del>-        cacheIterator-&gt;value = std::move(newEntry);
</del><ins>+        cacheIterator-&gt;value = newEntry.release();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void StyledElement::addPropertyToPresentationAttributeStyle(MutableStyleProperties&amp; style, CSSPropertyID propertyID, CSSValueID identifier)
</span></span></pre>
</div>
</div>

</body>
</html>