Diff
Modified: trunk/Source/WebCore/ChangeLog (163377 => 163378)
--- trunk/Source/WebCore/ChangeLog 2014-02-04 15:52:21 UTC (rev 163377)
+++ trunk/Source/WebCore/ChangeLog 2014-02-04 15:57:23 UTC (rev 163378)
@@ -1,3 +1,27 @@
+2014-02-04 Zan Dobersek <[email protected]>
+
+ Manage RuleSet and RuleData classes through std::unique_ptr instead of OwnPtr
+ https://bugs.webkit.org/show_bug.cgi?id=128116
+
+ Reviewed by Darin Adler.
+
+ Replace uses of OwnPtr for the RuleSet and RuleData classes with std::unique_ptr.
+
+ * css/CSSDefaultStyleSheets.cpp:
+ (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
+ (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
+ (WebCore::CSSDefaultStyleSheets::viewSourceStyle):
+ * css/DocumentRuleSets.cpp:
+ (WebCore::DocumentRuleSets::initUserStyle):
+ (WebCore::makeRuleSet):
+ (WebCore::DocumentRuleSets::resetAuthorStyle):
+ * css/DocumentRuleSets.h:
+ * css/RuleSet.cpp:
+ (WebCore::RuleSet::addToRuleSet):
+ (WebCore::RuleSet::addRegionRule):
+ * css/RuleSet.h:
+ (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
+
2014-02-04 Commit Queue <[email protected]>
Unreviewed, rolling out r163376.
Modified: trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp (163377 => 163378)
--- trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp 2014-02-04 15:52:21 UTC (rev 163377)
+++ trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp 2014-02-04 15:57:23 UTC (rev 163378)
@@ -107,14 +107,14 @@
ASSERT(defaultPrintStyle == defaultStyle);
delete defaultStyle;
simpleDefaultStyleSheet->deref();
- defaultStyle = RuleSet::create().leakPtr();
- defaultPrintStyle = RuleSet::create().leakPtr();
+ defaultStyle = std::make_unique<RuleSet>().release();
+ defaultPrintStyle = std::make_unique<RuleSet>().release();
simpleDefaultStyleSheet = 0;
} else {
ASSERT(!defaultStyle);
- defaultStyle = RuleSet::create().leakPtr();
- defaultPrintStyle = RuleSet::create().leakPtr();
- defaultQuirksStyle = RuleSet::create().leakPtr();
+ defaultStyle = std::make_unique<RuleSet>().release();
+ defaultPrintStyle = std::make_unique<RuleSet>().release();
+ defaultQuirksStyle = std::make_unique<RuleSet>().release();
}
// Strict-mode rules.
@@ -134,10 +134,10 @@
ASSERT(!defaultStyle);
ASSERT(!simpleDefaultStyleSheet);
- defaultStyle = RuleSet::create().leakPtr();
+ defaultStyle = std::make_unique<RuleSet>().release();
// There are no media-specific rules in the simple default style.
defaultPrintStyle = defaultStyle;
- defaultQuirksStyle = RuleSet::create().leakPtr();
+ defaultQuirksStyle = std::make_unique<RuleSet>().release();
simpleDefaultStyleSheet = parseUASheet(simpleUserAgentStyleSheet, strlen(simpleUserAgentStyleSheet));
defaultStyle->addRulesFromSheet(simpleDefaultStyleSheet, screenEval());
@@ -149,7 +149,7 @@
{
if (!defaultViewSourceStyle) {
static StyleSheetContents* viewSourceStyleSheet = parseUASheet(sourceUserAgentStyleSheet, sizeof(sourceUserAgentStyleSheet));
- defaultViewSourceStyle = RuleSet::create().leakPtr();
+ defaultViewSourceStyle = std::make_unique<RuleSet>().release();
defaultViewSourceStyle->addRulesFromSheet(viewSourceStyleSheet, screenEval());
}
return defaultViewSourceStyle;
Modified: trunk/Source/WebCore/css/DocumentRuleSets.cpp (163377 => 163378)
--- trunk/Source/WebCore/css/DocumentRuleSets.cpp 2014-02-04 15:52:21 UTC (rev 163377)
+++ trunk/Source/WebCore/css/DocumentRuleSets.cpp 2014-02-04 15:57:23 UTC (rev 163378)
@@ -48,13 +48,13 @@
void DocumentRuleSets::initUserStyle(DocumentStyleSheetCollection& styleSheetCollection, const MediaQueryEvaluator& medium, StyleResolver& resolver)
{
- OwnPtr<RuleSet> tempUserStyle = RuleSet::create();
+ auto tempUserStyle = std::make_unique<RuleSet>();
if (CSSStyleSheet* pageUserSheet = styleSheetCollection.pageUserSheet())
tempUserStyle->addRulesFromSheet(&pageUserSheet->contents(), medium, &resolver);
collectRulesFromUserStyleSheets(styleSheetCollection.injectedUserStyleSheets(), *tempUserStyle, medium, resolver);
collectRulesFromUserStyleSheets(styleSheetCollection.documentUserStyleSheets(), *tempUserStyle, medium, resolver);
if (tempUserStyle->ruleCount() > 0 || tempUserStyle->pageRules().size() > 0)
- m_userStyle = tempUserStyle.release();
+ m_userStyle = std::move(tempUserStyle);
}
void DocumentRuleSets::collectRulesFromUserStyleSheets(const Vector<RefPtr<CSSStyleSheet>>& userSheets, RuleSet& userStyle, const MediaQueryEvaluator& medium, StyleResolver& resolver)
@@ -65,21 +65,21 @@
}
}
-static PassOwnPtr<RuleSet> makeRuleSet(const Vector<RuleFeature>& rules)
+static std::unique_ptr<RuleSet> makeRuleSet(const Vector<RuleFeature>& rules)
{
size_t size = rules.size();
if (!size)
return nullptr;
- OwnPtr<RuleSet> ruleSet = RuleSet::create();
+ auto ruleSet = std::make_unique<RuleSet>();
for (size_t i = 0; i < size; ++i)
ruleSet->addRule(rules[i].rule, rules[i].selectorIndex, rules[i].hasDocumentSecurityOrigin ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState);
ruleSet->shrinkToFit();
- return ruleSet.release();
+ return ruleSet;
}
void DocumentRuleSets::resetAuthorStyle()
{
- m_authorStyle = RuleSet::create();
+ m_authorStyle = std::make_unique<RuleSet>();
m_authorStyle->disableAutoShrinkToFit();
}
Modified: trunk/Source/WebCore/css/DocumentRuleSets.h (163377 => 163378)
--- trunk/Source/WebCore/css/DocumentRuleSets.h 2014-02-04 15:52:21 UTC (rev 163377)
+++ trunk/Source/WebCore/css/DocumentRuleSets.h 2014-02-04 15:57:23 UTC (rev 163378)
@@ -25,8 +25,7 @@
#include "RuleFeature.h"
#include "RuleSet.h"
-
-#include <wtf/OwnPtr.h>
+#include <memory>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
@@ -58,11 +57,11 @@
private:
void collectRulesFromUserStyleSheets(const Vector<RefPtr<CSSStyleSheet>>&, RuleSet& userStyle, const MediaQueryEvaluator&, StyleResolver&);
- OwnPtr<RuleSet> m_authorStyle;
- OwnPtr<RuleSet> m_userStyle;
+ std::unique_ptr<RuleSet> m_authorStyle;
+ std::unique_ptr<RuleSet> m_userStyle;
RuleFeatureSet m_features;
- OwnPtr<RuleSet> m_siblingRuleSet;
- OwnPtr<RuleSet> m_uncommonAttributeRuleSet;
+ std::unique_ptr<RuleSet> m_siblingRuleSet;
+ std::unique_ptr<RuleSet> m_uncommonAttributeRuleSet;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/css/RuleSet.cpp (163377 => 163378)
--- trunk/Source/WebCore/css/RuleSet.cpp 2014-02-04 15:52:21 UTC (rev 163377)
+++ trunk/Source/WebCore/css/RuleSet.cpp 2014-02-04 15:57:23 UTC (rev 163378)
@@ -171,9 +171,9 @@
{
if (!key)
return;
- OwnPtr<Vector<RuleData>>& rules = map.add(key, nullptr).iterator->value;
+ std::unique_ptr<Vector<RuleData>>& rules = map.add(key, nullptr).iterator->value;
if (!rules)
- rules = adoptPtr(new Vector<RuleData>);
+ rules = std::make_unique<Vector<RuleData>>();
rules->append(ruleData);
}
@@ -248,7 +248,7 @@
void RuleSet::addRegionRule(StyleRuleRegion* regionRule, bool hasDocumentSecurityOrigin)
{
- OwnPtr<RuleSet> regionRuleSet = RuleSet::create();
+ auto regionRuleSet = std::make_unique<RuleSet>();
// The region rule set should take into account the position inside the parent rule set.
// Otherwise, the rules inside region block might be incorrectly positioned before other similar rules from
// the stylesheet that contains the region block.
@@ -267,7 +267,7 @@
// Update the "global" rule count so that proper order is maintained
m_ruleCount = regionRuleSet->m_ruleCount;
- m_regionSelectorsAndRuleSets.append(RuleSetSelectorPair(regionRule->selectorList().first(), regionRuleSet.release()));
+ m_regionSelectorsAndRuleSets.append(RuleSetSelectorPair(regionRule->selectorList().first(), std::move(regionRuleSet)));
}
void RuleSet::addChildRules(const Vector<RefPtr<StyleRuleBase>>& rules, const MediaQueryEvaluator& medium, StyleResolver* resolver, const ContainerNode* scope, bool hasDocumentSecurityOrigin, AddRuleFlags addRuleFlags)
Modified: trunk/Source/WebCore/css/RuleSet.h (163377 => 163378)
--- trunk/Source/WebCore/css/RuleSet.h 2014-02-04 15:52:21 UTC (rev 163377)
+++ trunk/Source/WebCore/css/RuleSet.h 2014-02-04 15:57:23 UTC (rev 163378)
@@ -128,16 +128,16 @@
WTF_MAKE_NONCOPYABLE(RuleSet); WTF_MAKE_FAST_ALLOCATED;
public:
struct RuleSetSelectorPair {
- RuleSetSelectorPair(const CSSSelector* selector, PassOwnPtr<RuleSet> ruleSet) : selector(selector), ruleSet(ruleSet) { }
+ RuleSetSelectorPair(const CSSSelector* selector, std::unique_ptr<RuleSet> ruleSet) : selector(selector), ruleSet(std::move(ruleSet)) { }
RuleSetSelectorPair(const RuleSetSelectorPair& pair) : selector(pair.selector), ruleSet(const_cast<RuleSetSelectorPair*>(&pair)->ruleSet.release()) { }
const CSSSelector* selector;
- OwnPtr<RuleSet> ruleSet;
+ std::unique_ptr<RuleSet> ruleSet;
};
- static PassOwnPtr<RuleSet> create() { return adoptPtr(new RuleSet); }
+ RuleSet();
- typedef HashMap<AtomicStringImpl*, OwnPtr<Vector<RuleData>>> AtomRuleMap;
+ typedef HashMap<AtomicStringImpl*, std::unique_ptr<Vector<RuleData>>> AtomRuleMap;
void addRulesFromSheet(StyleSheetContents*, const MediaQueryEvaluator&, StyleResolver* = 0, const ContainerNode* = 0);
@@ -170,8 +170,6 @@
void addChildRules(const Vector<RefPtr<StyleRuleBase>>&, const MediaQueryEvaluator& medium, StyleResolver*, const ContainerNode* scope, bool hasDocumentSecurityOrigin, AddRuleFlags);
bool findBestRuleSetAndAdd(const CSSSelector*, RuleData&);
- RuleSet();
-
AtomRuleMap m_idRules;
AtomRuleMap m_classRules;
AtomRuleMap m_tagRules;