diff --git a/layout/style/RuleCascadeData.cpp b/layout/style/RuleCascadeData.cpp index c2e2151212..ed0f2d52ee 100644 --- a/layout/style/RuleCascadeData.cpp +++ b/layout/style/RuleCascadeData.cpp @@ -1570,7 +1570,7 @@ CascadeEnumData::CascadeEnumData(nsPresContext* aPresContext, , mName(aName) , mIsAnonymous(mName.IsEmpty()) , mIsWeak(aIsWeak) - , mWasFlattened(false) + , mRulesAdded(false) #ifdef DEBUG , mParent(aParent) , mIsRoot(false) @@ -1594,7 +1594,7 @@ CascadeEnumData::CascadeEnumData(nsPresContext* aPresContext, : mPresContext(aPresContext) , mIsAnonymous(false) , mIsWeak(false) - , mWasFlattened(false) + , mRulesAdded(false) #ifdef DEBUG , mParent(nullptr) , mIsRoot(true) @@ -1683,6 +1683,8 @@ CompareWeightData(const void* aArg1, const void* aArg2, void* closure) void CascadeEnumData::AddRules() { + MOZ_ASSERT(!mRulesAdded, "Rule cascade data already filled"); + for (css::StyleRule* styleRule : mStyleRules) { for (nsCSSSelectorList* sel = styleRule->Selector(); sel; sel = sel->mNext) { @@ -1750,15 +1752,13 @@ CascadeEnumData::AddRules() nsCSSCounterStyleRule* rule = mData->mCounterStyleRules[i]; mData->mCounterStyleRuleTable.Put(rule->GetName(), rule); } + + mRulesAdded = true; } void CascadeEnumData::EnumerateAllLayers(nsLayerEnumFunc aFunc, void* aData) { - if (mWasFlattened) { - return; - } - if (mPreLayers.Length() > 0) { for (CascadeEnumData* pre : mPreLayers) { pre->EnumerateAllLayers(aFunc, aData); @@ -1772,8 +1772,6 @@ CascadeEnumData::EnumerateAllLayers(nsLayerEnumFunc aFunc, void* aData) post->EnumerateAllLayers(aFunc, aData); } } - - mWasFlattened = true; } void diff --git a/layout/style/RuleCascadeData.h b/layout/style/RuleCascadeData.h index 04bbafa67d..bc482916e9 100644 --- a/layout/style/RuleCascadeData.h +++ b/layout/style/RuleCascadeData.h @@ -369,7 +369,7 @@ struct CascadeEnumData nsString mName; bool mIsAnonymous; bool mIsWeak; - bool mWasFlattened; + bool mRulesAdded; RuleCascadeData* mData;