Bug 1771609 - patch 2 - Cache the block's nsLineIterator in a property on nsBlockFrame, for better performance on large pages. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D147578
This commit is contained in:
@@ -511,9 +511,14 @@ void nsBlockFrame::DestroyFrom(nsIFrame* aDestructRoot,
|
||||
|
||||
/* virtual */
|
||||
nsILineIterator* nsBlockFrame::GetLineIterator() {
|
||||
const nsStyleVisibility* visibility = StyleVisibility();
|
||||
return new nsLineIterator(mLines,
|
||||
visibility->mDirection == StyleDirection::Rtl);
|
||||
nsLineIterator* iter = GetProperty(LineIteratorProperty());
|
||||
if (!iter) {
|
||||
const nsStyleVisibility* visibility = StyleVisibility();
|
||||
iter = new nsLineIterator(mLines,
|
||||
visibility->mDirection == StyleDirection::Rtl);
|
||||
SetProperty(LineIteratorProperty(), iter);
|
||||
}
|
||||
return iter;
|
||||
}
|
||||
|
||||
NS_QUERYFRAME_HEAD(nsBlockFrame)
|
||||
|
||||
Reference in New Issue
Block a user