Index: Source/core/css/invalidation/StyleInvalidator.h |
diff --git a/Source/core/css/invalidation/StyleInvalidator.h b/Source/core/css/invalidation/StyleInvalidator.h |
index 440002260098e51a0748129c8d82599039d91aeb..82d93d8181ae9ec301e6ab27c6d943082d5847b7 100644 |
--- a/Source/core/css/invalidation/StyleInvalidator.h |
+++ b/Source/core/css/invalidation/StyleInvalidator.h |
@@ -29,7 +29,9 @@ public: |
DECLARE_TRACE(); |
private: |
- struct RecursionData { |
+ class RecursionData { |
+ DISALLOW_ALLOCATION(); |
+ public: |
RecursionData() |
: m_invalidateCustomPseudo(false) |
, m_wholeSubtreeInvalid(false) |
@@ -37,6 +39,13 @@ private: |
, m_insertionPointCrossing(false) |
{ } |
+ DEFINE_INLINE_TRACE() |
+ { |
+#if ENABLE(OILPAN) |
+ visitor->trace(m_invalidationSets); |
+#endif |
+ } |
+ |
void pushInvalidationSet(const DescendantInvalidationSet&); |
bool matchesCurrentInvalidationSets(Element&); |
bool hasInvalidationSets() const { return !wholeSubtreeInvalid() && m_invalidationSets.size(); } |
@@ -47,7 +56,7 @@ private: |
bool treeBoundaryCrossing() const { return m_treeBoundaryCrossing; } |
bool insertionPointCrossing() const { return m_insertionPointCrossing; } |
- using InvalidationSets = Vector<const DescendantInvalidationSet*, 16>; |
+ using InvalidationSets = WillBeHeapVector<RawPtrWillBeMember<const DescendantInvalidationSet>, 16>; |
InvalidationSets m_invalidationSets; |
bool m_invalidateCustomPseudo; |
bool m_wholeSubtreeInvalid; |