summaryrefslogtreecommitdiff
path: root/xfa/fde/css/cfde_cssrulecollection.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fde/css/cfde_cssrulecollection.h')
-rw-r--r--xfa/fde/css/cfde_cssrulecollection.h22
1 files changed, 7 insertions, 15 deletions
diff --git a/xfa/fde/css/cfde_cssrulecollection.h b/xfa/fde/css/cfde_cssrulecollection.h
index 47e7696c34..d9bbeb3736 100644
--- a/xfa/fde/css/cfde_cssrulecollection.h
+++ b/xfa/fde/css/cfde_cssrulecollection.h
@@ -8,6 +8,8 @@
#define XFA_FDE_CSS_CFDE_CSSRULECOLLECTION_H_
#include <map>
+#include <memory>
+#include <vector>
#include "core/fxcrt/fx_basic.h"
@@ -21,12 +23,10 @@ class CFDE_CSSRuleCollection {
public:
class Data {
public:
- Data(CFDE_CSSSelector* pSel, CFDE_CSSDeclaration* pDecl, uint32_t dwPos);
+ Data(CFDE_CSSSelector* pSel, CFDE_CSSDeclaration* pDecl);
CFDE_CSSSelector* const pSelector;
CFDE_CSSDeclaration* const pDeclaration;
- uint32_t dwPriority;
- Data* pNext;
};
CFDE_CSSRuleCollection();
@@ -36,23 +36,15 @@ class CFDE_CSSRuleCollection {
void Clear();
int32_t CountSelectors() const { return m_iSelectors; }
- Data* GetTagRuleData(uint32_t dwTagHash) {
- auto it = m_TagRules.find(dwTagHash);
- return it != m_TagRules.end() ? it->second : nullptr;
- }
+ const std::vector<std::unique_ptr<Data>>* GetTagRuleData(
+ uint32_t dwTagHash) const;
private:
void AddRulesFrom(const CFDE_CSSStyleSheet* pStyleSheet,
CFDE_CSSStyleRule* pRule,
CFGAS_FontMgr* pFontMgr);
- void AddRuleTo(std::map<uint32_t, Data*>* pMap,
- uint32_t dwKey,
- CFDE_CSSSelector* pSel,
- CFDE_CSSDeclaration* pDecl);
- bool AddRuleTo(Data** pList, Data* pData);
- Data* NewRuleData(CFDE_CSSSelector* pSel, CFDE_CSSDeclaration* pDecl);
-
- std::map<uint32_t, Data*> m_TagRules;
+
+ std::map<uint32_t, std::vector<std::unique_ptr<Data>>> m_TagRules;
int32_t m_iSelectors;
};