зеркало из https://github.com/mozilla/pjs.git
Bug 625434. Make sure we don't get into a situation where we're failing to gc the ruletree for a page. r=dbaron, a=blocker
This commit is contained in:
Родитель
dff453c02f
Коммит
dd3e262caa
|
@ -425,9 +425,16 @@ private:
|
|||
// Compute*Data functions don't initialize from
|
||||
// inherited data.
|
||||
|
||||
// Reference count. This just counts the style contexts that
|
||||
// reference this rulenode. When this goes to 0 or stops being 0,
|
||||
// we notify the style set.
|
||||
// Reference count. This just counts the style contexts that reference this
|
||||
// rulenode. And children the rulenode has had. When this goes to 0 or
|
||||
// stops being 0, we notify the style set.
|
||||
// Note, in particular, that when a child is removed mRefCnt is NOT
|
||||
// decremented. This is on purpose; the notifications to the style set are
|
||||
// only used to determine when it's worth running GC on the ruletree, and
|
||||
// this setup makes it so we only count unused ruletree leaves for purposes
|
||||
// of deciding when to GC. We could more accurately count unused rulenodes
|
||||
// by releasing/addrefing our parent when our refcount transitions to or from
|
||||
// 0, but it doesn't seem worth it to do that.
|
||||
PRUint32 mRefCnt;
|
||||
|
||||
public:
|
||||
|
|
|
@ -1074,7 +1074,7 @@ nsStyleSet::NotifyStyleContextDestroyed(nsPresContext* aPresContext,
|
|||
if (mInReconstruct)
|
||||
return;
|
||||
|
||||
if (mUnusedRuleNodeCount == kGCInterval) {
|
||||
if (mUnusedRuleNodeCount >= kGCInterval) {
|
||||
GCRuleTrees();
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче