[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
morrita at google.com
morrita at google.com
Sun Feb 20 23:08:41 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit 9b1e84174635f335a5b4e6292bb828c4123f61d6
Author: morrita at google.com <morrita at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jan 18 04:30:28 2011 +0000
2011-01-17 MORITA Hajime <morrita at google.com>
Reviewed by Dimitri Glazkov.
ElementRareData::m_shadowRoot should not be RefPtr.
https://bugs.webkit.org/show_bug.cgi?id=51914
This change makes m_shadowRoot a raw pointer, as Node::m_parent is.
This change is safe because shadow host pointer is stored as TreeShared::m_parent
which prevents deletion unless set to null.
No test, no behavioral change.
* dom/Element.cpp:
(WebCore::Element::shadowRoot):
(WebCore::Element::setShadowRoot):
(WebCore::Element::removeShadowRoot):
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 375817f..2dd01b8 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2011-01-17 MORITA Hajime <morrita at google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ ElementRareData::m_shadowRoot should not be RefPtr.
+ https://bugs.webkit.org/show_bug.cgi?id=51914
+
+ This change makes m_shadowRoot a raw pointer, as Node::m_parent is.
+ This change is safe because shadow host pointer is stored as TreeShared::m_parent
+ which prevents deletion unless set to null.
+
+ No test, no behavioral change.
+
+ * dom/Element.cpp:
+ (WebCore::Element::shadowRoot):
+ (WebCore::Element::setShadowRoot):
+ (WebCore::Element::removeShadowRoot):
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::ElementRareData):
+
2011-01-17 Maciej Stachowiak <mjs at apple.com>
Reviewed by Dan Bernstein.
diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp
index c61b95d..34caa22 100644
--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -1084,7 +1084,7 @@ void Element::recalcStyle(StyleChange change)
Node* Element::shadowRoot()
{
- return hasRareData() ? rareData()->m_shadowRoot.get() : 0;
+ return hasRareData() ? rareData()->m_shadowRoot : 0;
}
void Element::setShadowRoot(PassRefPtr<Node> node)
@@ -1093,20 +1093,21 @@ void Element::setShadowRoot(PassRefPtr<Node> node)
// about compromising DOM tree integrity (eg. node being a parent of this). However,
// once we implement XBL2, we will have to add integrity checks here.
removeShadowRoot();
- RefPtr<Node> newRoot = node;
- if (!newRoot)
+ if (!node)
return;
- ensureRareData()->m_shadowRoot = newRoot;
- newRoot->setShadowHost(this);
+ ElementRareData* data = ensureRareData();
+ data->m_shadowRoot = node.leakRef();
+ data->m_shadowRoot->setShadowHost(this);
}
void Element::removeShadowRoot()
{
- if (!hasRareData())
- return;
-
- if (RefPtr<Node> oldRoot = rareData()->m_shadowRoot.release()) {
+ if (ElementRareData* data = rareData()) {
+ if (!data->m_shadowRoot)
+ return;
+ RefPtr<Node> oldRoot = data->m_shadowRoot;
+ data->m_shadowRoot = 0;
document()->removeFocusedNodeOfSubtree(oldRoot.get());
oldRoot->setShadowHost(0);
if (oldRoot->inDocument())
diff --git a/Source/WebCore/dom/ElementRareData.h b/Source/WebCore/dom/ElementRareData.h
index f7f30bb..500e31f 100644
--- a/Source/WebCore/dom/ElementRareData.h
+++ b/Source/WebCore/dom/ElementRareData.h
@@ -41,7 +41,7 @@ public:
IntSize m_minimumSizeForResizing;
RefPtr<RenderStyle> m_computedStyle;
- RefPtr<Node> m_shadowRoot;
+ Node* m_shadowRoot;
OwnPtr<DatasetDOMStringMap> m_datasetDOMStringMap;
OwnPtr<ClassList> m_classList;
@@ -54,6 +54,7 @@ inline IntSize defaultMinimumSizeForResizing()
inline ElementRareData::ElementRareData()
: m_minimumSizeForResizing(defaultMinimumSizeForResizing())
+ , m_shadowRoot(0)
{
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list