Index: Source/core/dom/ElementRareData.h |
diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h |
index f1d57ba51a1c909c77d51c452cced0e530c1c792..7bba0b61b6ea7e6fbaf9426d22206243c1eae5e5 100644 |
--- a/Source/core/dom/ElementRareData.h |
+++ b/Source/core/dom/ElementRareData.h |
@@ -148,6 +148,7 @@ private: |
RefPtrWillBeMember<PseudoElement> m_generatedBefore; |
RefPtrWillBeMember<PseudoElement> m_generatedAfter; |
+ RefPtrWillBeMember<PseudoElement> m_generatedFirstLetter; |
RefPtrWillBeMember<PseudoElement> m_backdrop; |
explicit ElementRareData(RenderObject*); |
@@ -173,12 +174,13 @@ inline ElementRareData::~ElementRareData() |
#endif |
ASSERT(!m_generatedBefore); |
ASSERT(!m_generatedAfter); |
+ ASSERT(!m_generatedFirstLetter); |
ASSERT(!m_backdrop); |
} |
inline bool ElementRareData::hasPseudoElements() const |
{ |
- return m_generatedBefore || m_generatedAfter || m_backdrop; |
+ return m_generatedBefore || m_generatedAfter || m_backdrop || m_generatedFirstLetter; |
} |
inline void ElementRareData::clearPseudoElements() |
@@ -186,6 +188,7 @@ inline void ElementRareData::clearPseudoElements() |
setPseudoElement(BEFORE, nullptr); |
setPseudoElement(AFTER, nullptr); |
setPseudoElement(BACKDROP, nullptr); |
+ setPseudoElement(FIRST_LETTER, nullptr); |
} |
inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillBeRawPtr<PseudoElement> element) |
@@ -206,6 +209,11 @@ inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillB |
m_backdrop->dispose(); |
m_backdrop = element; |
break; |
+ case FIRST_LETTER: |
+ if (m_generatedFirstLetter) |
+ m_generatedFirstLetter->dispose(); |
+ m_generatedFirstLetter = element; |
+ break; |
default: |
ASSERT_NOT_REACHED(); |
} |
@@ -220,6 +228,8 @@ inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const |
return m_generatedAfter.get(); |
case BACKDROP: |
return m_backdrop.get(); |
+ case FIRST_LETTER: |
+ return m_generatedFirstLetter.get(); |
default: |
return 0; |
} |