CSSOM rule wrappers always have a corresponding internal style object.
<https://webkit.org/b/137379>
Make the CSSOM rule wrapper classes use references & Ref instead of
raw pointers and RefPtr for pointing to the internal style rule.
Also changed the signature of reattach() to take a StyleRuleBase&
since it's never called with a null pointer.
Finally marked the rule classes final.
Reviewed by Geoffrey Garen.
* css/CSSCharsetRule.h:
* css/CSSFontFaceRule.cpp:
(WebCore::CSSFontFaceRule::CSSFontFaceRule):
(WebCore::CSSFontFaceRule::reattach):
* css/CSSFontFaceRule.h:
(WebCore::CSSFontFaceRule::create): Deleted.
* css/CSSGroupingRule.cpp:
(WebCore::CSSGroupingRule::CSSGroupingRule):
(WebCore::CSSGroupingRule::reattach):
* css/CSSGroupingRule.h:
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::CSSImportRule):
(WebCore::CSSImportRule::href):
(WebCore::CSSImportRule::media):
(WebCore::CSSImportRule::cssText):
(WebCore::CSSImportRule::styleSheet):
(WebCore::CSSImportRule::reattach):
* css/CSSImportRule.h:
(WebCore::CSSImportRule::create): Deleted.
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::CSSMediaRule):
(WebCore::CSSMediaRule::mediaQueries):
(WebCore::CSSMediaRule::reattach):
* css/CSSMediaRule.h:
(WebCore::CSSMediaRule::create): Deleted.
* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::CSSPageRule):
(WebCore::CSSPageRule::reattach):
* css/CSSPageRule.h:
(WebCore::CSSPageRule::create): Deleted.
* css/CSSRule.h:
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::CSSStyleRule):
(WebCore::CSSStyleRule::reattach):
* css/CSSStyleRule.h:
(WebCore::CSSStyleRule::create): Deleted.
(WebCore::CSSStyleRule::styleRule): Deleted.
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
* css/CSSSupportsRule.cpp:
(WebCore::CSSSupportsRule::CSSSupportsRule):
(WebCore::CSSSupportsRule::conditionText):
* css/CSSSupportsRule.h:
(WebCore::CSSSupportsRule::create):
* css/CSSUnknownRule.h:
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::createCSSOMWrapper):
* css/StyleRuleImport.h:
(WebCore::StyleRuleImport::mediaQueries):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
(WebCore::WebKitCSSKeyframeRule::reattach):
* css/WebKitCSSKeyframeRule.h:
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
(WebCore::WebKitCSSKeyframesRule::item):
(WebCore::WebKitCSSKeyframesRule::reattach):
* css/WebKitCSSKeyframesRule.h:
(WebCore::WebKitCSSKeyframesRule::create):
* css/WebKitCSSRegionRule.cpp:
(WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
(WebCore::WebKitCSSRegionRule::cssText):
* css/WebKitCSSRegionRule.h:
(WebCore::WebKitCSSRegionRule::create):
* css/WebKitCSSViewportRule.cpp:
(WebCore::WebKitCSSViewportRule::reattach):
* css/WebKitCSSViewportRule.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/css/StyleRule.cpp b/Source/WebCore/css/StyleRule.cpp
index 83741a7..99c42ea 100644
--- a/Source/WebCore/css/StyleRule.cpp
+++ b/Source/WebCore/css/StyleRule.cpp
@@ -147,39 +147,39 @@
PassRefPtr<CSSRule> StyleRuleBase::createCSSOMWrapper(CSSStyleSheet* parentSheet, CSSRule* parentRule) const
{
RefPtr<CSSRule> rule;
- StyleRuleBase* self = const_cast<StyleRuleBase*>(this);
+ StyleRuleBase& self = const_cast<StyleRuleBase&>(*this);
switch (type()) {
case Style:
- rule = CSSStyleRule::create(static_cast<StyleRule*>(self), parentSheet);
+ rule = CSSStyleRule::create(static_cast<StyleRule&>(self), parentSheet);
break;
case Page:
- rule = CSSPageRule::create(static_cast<StyleRulePage*>(self), parentSheet);
+ rule = CSSPageRule::create(static_cast<StyleRulePage&>(self), parentSheet);
break;
case FontFace:
- rule = CSSFontFaceRule::create(static_cast<StyleRuleFontFace*>(self), parentSheet);
+ rule = CSSFontFaceRule::create(static_cast<StyleRuleFontFace&>(self), parentSheet);
break;
case Media:
- rule = CSSMediaRule::create(static_cast<StyleRuleMedia*>(self), parentSheet);
+ rule = CSSMediaRule::create(static_cast<StyleRuleMedia&>(self), parentSheet);
break;
#if ENABLE(CSS3_CONDITIONAL_RULES)
case Supports:
- rule = CSSSupportsRule::create(static_cast<StyleRuleSupports*>(self), parentSheet);
+ rule = CSSSupportsRule::create(static_cast<StyleRuleSupports&>(self), parentSheet);
break;
#endif
#if ENABLE(CSS_REGIONS)
case Region:
- rule = WebKitCSSRegionRule::create(static_cast<StyleRuleRegion*>(self), parentSheet);
+ rule = WebKitCSSRegionRule::create(static_cast<StyleRuleRegion&>(self), parentSheet);
break;
#endif
case Import:
- rule = CSSImportRule::create(static_cast<StyleRuleImport*>(self), parentSheet);
+ rule = CSSImportRule::create(static_cast<StyleRuleImport&>(self), parentSheet);
break;
case Keyframes:
- rule = WebKitCSSKeyframesRule::create(static_cast<StyleRuleKeyframes*>(self), parentSheet);
+ rule = WebKitCSSKeyframesRule::create(static_cast<StyleRuleKeyframes&>(self), parentSheet);
break;
#if ENABLE(CSS_DEVICE_ADAPTATION)
case Viewport:
- rule = WebKitCSSViewportRule::create(static_cast<StyleRuleViewport*>(self), parentSheet);
+ rule = WebKitCSSViewportRule::create(static_cast<StyleRuleViewport&>(self), parentSheet);
break;
#endif
case Unknown: