Title: [103664] trunk/Source/WebCore
- Revision
- 103664
- Author
- [email protected]
- Date
- 2011-12-24 14:08:02 -0800 (Sat, 24 Dec 2011)
Log Message
CSSElementStyleDeclarations should never move between elements.
<http://webkit.org/b/75198>
Reviewed by Anders Carlsson.
Have the CSSElementStyleDeclaration subclasses take a StyledElement* in
the constructor and replace setElement(StyledElement*) by clearElement().
No behavior change, just enforcing the current behavior at compile-time.
* css/CSSElementStyleDeclaration.h:
(WebCore::CSSElementStyleDeclaration::clearElement):
(WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration):
* css/CSSInlineStyleDeclaration.h:
(WebCore::CSSInlineStyleDeclaration::create):
(WebCore::CSSInlineStyleDeclaration::CSSInlineStyleDeclaration):
* dom/StyledElement.cpp:
(WebCore::StyledElement::createInlineStyleDecl):
(WebCore::StyledElement::destroyInlineStyleDecl):
* svg/SVGFontFaceElement.cpp:
(WebCore::FontFaceStyleDeclaration::FontFaceStyleDeclaration):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (103663 => 103664)
--- trunk/Source/WebCore/ChangeLog 2011-12-24 21:24:59 UTC (rev 103663)
+++ trunk/Source/WebCore/ChangeLog 2011-12-24 22:08:02 UTC (rev 103664)
@@ -1,3 +1,27 @@
+2011-12-24 Andreas Kling <[email protected]>
+
+ CSSElementStyleDeclarations should never move between elements.
+ <http://webkit.org/b/75198>
+
+ Reviewed by Anders Carlsson.
+
+ Have the CSSElementStyleDeclaration subclasses take a StyledElement* in
+ the constructor and replace setElement(StyledElement*) by clearElement().
+
+ No behavior change, just enforcing the current behavior at compile-time.
+
+ * css/CSSElementStyleDeclaration.h:
+ (WebCore::CSSElementStyleDeclaration::clearElement):
+ (WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration):
+ * css/CSSInlineStyleDeclaration.h:
+ (WebCore::CSSInlineStyleDeclaration::create):
+ (WebCore::CSSInlineStyleDeclaration::CSSInlineStyleDeclaration):
+ * dom/StyledElement.cpp:
+ (WebCore::StyledElement::createInlineStyleDecl):
+ (WebCore::StyledElement::destroyInlineStyleDecl):
+ * svg/SVGFontFaceElement.cpp:
+ (WebCore::FontFaceStyleDeclaration::FontFaceStyleDeclaration):
+
2011-12-23 Andreas Kling <[email protected]>
Decouple CSSMappedAttributeDeclaration from element completely.
Modified: trunk/Source/WebCore/css/CSSElementStyleDeclaration.h (103663 => 103664)
--- trunk/Source/WebCore/css/CSSElementStyleDeclaration.h 2011-12-24 21:24:59 UTC (rev 103663)
+++ trunk/Source/WebCore/css/CSSElementStyleDeclaration.h 2011-12-24 22:08:02 UTC (rev 103664)
@@ -37,14 +37,14 @@
class CSSElementStyleDeclaration : public CSSMutableStyleDeclaration {
public:
StyledElement* element() const { return m_element; }
- void setElement(StyledElement* element) { m_element = element; }
+ void clearElement() { m_element = 0; }
virtual CSSStyleSheet* styleSheet() const;
protected:
- CSSElementStyleDeclaration(bool isInline)
+ CSSElementStyleDeclaration(StyledElement* element, bool isInline)
: CSSMutableStyleDeclaration()
- , m_element(0)
+ , m_element(element)
{
m_isElementStyleDeclaration = true;
m_isInlineStyleDeclaration = isInline;
Modified: trunk/Source/WebCore/css/CSSInlineStyleDeclaration.h (103663 => 103664)
--- trunk/Source/WebCore/css/CSSInlineStyleDeclaration.h 2011-12-24 21:24:59 UTC (rev 103663)
+++ trunk/Source/WebCore/css/CSSInlineStyleDeclaration.h 2011-12-24 22:08:02 UTC (rev 103664)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2004, 2005, 2006, 2008, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2011 Andreas Kling ([email protected])
*
* Redistribution and use in source and binary forms, with or without
@@ -35,14 +35,14 @@
public:
virtual ~CSSInlineStyleDeclaration() { }
- static PassRefPtr<CSSInlineStyleDeclaration> create()
+ static PassRefPtr<CSSInlineStyleDeclaration> create(StyledElement* element)
{
- return adoptRef(new CSSInlineStyleDeclaration);
+ return adoptRef(new CSSInlineStyleDeclaration(element));
}
private:
- CSSInlineStyleDeclaration()
- : CSSElementStyleDeclaration(/* isInline */ true)
+ CSSInlineStyleDeclaration(StyledElement* element)
+ : CSSElementStyleDeclaration(element, /* isInline */ true)
{
}
};
Modified: trunk/Source/WebCore/dom/StyledElement.cpp (103663 => 103664)
--- trunk/Source/WebCore/dom/StyledElement.cpp 2011-12-24 21:24:59 UTC (rev 103663)
+++ trunk/Source/WebCore/dom/StyledElement.cpp 2011-12-24 22:08:02 UTC (rev 103664)
@@ -130,8 +130,7 @@
void StyledElement::createInlineStyleDecl()
{
ASSERT(!m_inlineStyleDecl);
- m_inlineStyleDecl = CSSInlineStyleDeclaration::create();
- m_inlineStyleDecl->setElement(this);
+ m_inlineStyleDecl = CSSInlineStyleDeclaration::create(this);
m_inlineStyleDecl->setStrictParsing(isHTMLElement() && !document()->inQuirksMode());
}
@@ -139,7 +138,7 @@
{
if (!m_inlineStyleDecl)
return;
- m_inlineStyleDecl->setElement(0);
+ m_inlineStyleDecl->clearElement();
m_inlineStyleDecl = 0;
}
Modified: trunk/Source/WebCore/svg/SVGFontFaceElement.cpp (103663 => 103664)
--- trunk/Source/WebCore/svg/SVGFontFaceElement.cpp 2011-12-24 21:24:59 UTC (rev 103663)
+++ trunk/Source/WebCore/svg/SVGFontFaceElement.cpp 2011-12-24 22:08:02 UTC (rev 103664)
@@ -68,9 +68,8 @@
private:
FontFaceStyleDeclaration(SVGFontFaceElement* element)
- : CSSElementStyleDeclaration(/* isInline */ false)
+ : CSSElementStyleDeclaration(element, /* isInline */ false)
{
- setElement(element);
}
};
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes