| Index: Source/core/css/RuleFeature.cpp
|
| diff --git a/Source/core/css/RuleFeature.cpp b/Source/core/css/RuleFeature.cpp
|
| index f8ce8dd99902cd8455f5b19516311ed85ed56980..c0bc49277830ac79004306431b067c4d95c356eb 100644
|
| --- a/Source/core/css/RuleFeature.cpp
|
| +++ b/Source/core/css/RuleFeature.cpp
|
| @@ -348,7 +348,7 @@ void RuleFeatureSet::clear()
|
| m_metadata.clear();
|
| m_classInvalidationSets.clear();
|
| m_attributeInvalidationSets.clear();
|
| - m_pendingInvalidationMap.clear();
|
| + m_styleInvalidator.clear();
|
| }
|
|
|
| void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitString& changedClasses, Element* element)
|
| @@ -394,39 +394,19 @@ void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitStr
|
|
|
| void RuleFeatureSet::scheduleStyleInvalidationForAttributeChange(const QualifiedName& attributeName, Element* element)
|
| {
|
| - if (RefPtr<DescendantInvalidationSet> invalidationSet = m_attributeInvalidationSets.get(attributeName.localName())) {
|
| - ensurePendingInvalidationList(element).append(invalidationSet);
|
| - element->setNeedsStyleInvalidation();
|
| - }
|
| + if (RefPtr<DescendantInvalidationSet> invalidationSet = m_attributeInvalidationSets.get(attributeName.localName()))
|
| + m_styleInvalidator.scheduleInvalidation(invalidationSet, element);
|
| }
|
|
|
| void RuleFeatureSet::addClassToInvalidationSet(const AtomicString& className, Element* element)
|
| {
|
| - if (RefPtr<DescendantInvalidationSet> invalidationSet = m_classInvalidationSets.get(className)) {
|
| - ensurePendingInvalidationList(element).append(invalidationSet);
|
| - element->setNeedsStyleInvalidation();
|
| - }
|
| -}
|
| -
|
| -RuleFeatureSet::InvalidationList& RuleFeatureSet::ensurePendingInvalidationList(Element* element)
|
| -{
|
| - PendingInvalidationMap::AddResult addResult = m_pendingInvalidationMap.add(element, nullptr);
|
| - if (addResult.isNewEntry)
|
| - addResult.storedValue->value = adoptPtr(new InvalidationList);
|
| - return *addResult.storedValue->value;
|
| -}
|
| -
|
| -void RuleFeatureSet::clearStyleInvalidation(Node* node)
|
| -{
|
| - node->clearChildNeedsStyleInvalidation();
|
| - node->clearNeedsStyleInvalidation();
|
| - if (node->isElementNode())
|
| - m_pendingInvalidationMap.remove(toElement(node));
|
| + if (RefPtr<DescendantInvalidationSet> invalidationSet = m_classInvalidationSets.get(className))
|
| + m_styleInvalidator.scheduleInvalidation(invalidationSet, element);
|
| }
|
|
|
| -RuleFeatureSet::PendingInvalidationMap& RuleFeatureSet::pendingInvalidationMap()
|
| +StyleInvalidator& RuleFeatureSet::styleInvalidator()
|
| {
|
| - return m_pendingInvalidationMap;
|
| + return m_styleInvalidator;
|
| }
|
|
|
| } // namespace WebCore
|
|
|