Simplify CFX_CSSRuleCollection
- No need to short-circuit empty rule set case.
- No need to clear vector in destructor.
- Combine Clear/Add into a Set method.
- Remove unused argument.
- Don't end method names in a preposition.
Change-Id: Ia79454283cc5ded0eca282b9b94c98679ba94a84
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/93110
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcrt/css/cfx_cssrulecollection.cpp b/core/fxcrt/css/cfx_cssrulecollection.cpp
index b8c96cd..118ef6d 100644
--- a/core/fxcrt/css/cfx_cssrulecollection.cpp
+++ b/core/fxcrt/css/cfx_cssrulecollection.cpp
@@ -17,13 +17,7 @@
CFX_CSSRuleCollection::CFX_CSSRuleCollection() = default;
-CFX_CSSRuleCollection::~CFX_CSSRuleCollection() {
- Clear();
-}
-
-void CFX_CSSRuleCollection::Clear() {
- m_TagRules.clear();
-}
+CFX_CSSRuleCollection::~CFX_CSSRuleCollection() = default;
const std::vector<std::unique_ptr<CFX_CSSRuleCollection::Data>>*
CFX_CSSRuleCollection::GetTagRuleData(const WideString& tagname) const {
@@ -31,13 +25,13 @@
return it != m_TagRules.end() ? &it->second : nullptr;
}
-void CFX_CSSRuleCollection::AddRulesFrom(const CFX_CSSStyleSheet* sheet) {
+void CFX_CSSRuleCollection::SetRulesFromSheet(const CFX_CSSStyleSheet* sheet) {
+ m_TagRules.clear();
for (size_t i = 0; i < sheet->CountRules(); ++i)
- AddRulesFrom(sheet, sheet->GetRule(i));
+ AddRule(sheet->GetRule(i));
}
-void CFX_CSSRuleCollection::AddRulesFrom(const CFX_CSSStyleSheet* pStyleSheet,
- CFX_CSSStyleRule* pStyleRule) {
+void CFX_CSSRuleCollection::AddRule(CFX_CSSStyleRule* pStyleRule) {
CFX_CSSDeclaration* pDeclaration = pStyleRule->GetDeclaration();
size_t nSelectors = pStyleRule->CountSelectorLists();
for (size_t i = 0; i < nSelectors; ++i) {
diff --git a/core/fxcrt/css/cfx_cssrulecollection.h b/core/fxcrt/css/cfx_cssrulecollection.h
index e63edd7..a9b9c71 100644
--- a/core/fxcrt/css/cfx_cssrulecollection.h
+++ b/core/fxcrt/css/cfx_cssrulecollection.h
@@ -31,16 +31,13 @@
CFX_CSSRuleCollection();
~CFX_CSSRuleCollection();
- bool IsEmpty() const { return m_TagRules.empty(); }
- void AddRulesFrom(const CFX_CSSStyleSheet* sheet);
- void Clear();
+ void SetRulesFromSheet(const CFX_CSSStyleSheet* sheet);
const std::vector<std::unique_ptr<Data>>* GetTagRuleData(
const WideString& tagname) const;
private:
- void AddRulesFrom(const CFX_CSSStyleSheet* pStyleSheet,
- CFX_CSSStyleRule* pRule);
+ void AddRule(CFX_CSSStyleRule* pRule);
std::map<uint32_t, std::vector<std::unique_ptr<Data>>> m_TagRules;
};
diff --git a/core/fxcrt/css/cfx_cssstyleselector.cpp b/core/fxcrt/css/cfx_cssstyleselector.cpp
index e477b9e..bf90a50 100644
--- a/core/fxcrt/css/cfx_cssstyleselector.cpp
+++ b/core/fxcrt/css/cfx_cssstyleselector.cpp
@@ -46,14 +46,13 @@
}
void CFX_CSSStyleSelector::UpdateStyleIndex() {
- m_UARules.Clear();
- m_UARules.AddRulesFrom(m_UAStyles.get());
+ m_UARules.SetRulesFromSheet(m_UAStyles.get());
}
std::vector<const CFX_CSSDeclaration*> CFX_CSSStyleSelector::MatchDeclarations(
const WideString& tagname) {
std::vector<const CFX_CSSDeclaration*> matchedDecls;
- if (m_UARules.IsEmpty() || tagname.IsEmpty())
+ if (tagname.IsEmpty())
return matchedDecls;
auto* rules = m_UARules.GetTagRuleData(tagname);