author | Daniel Holbert <dholbert@cs.stanford.edu> |
Wed, 28 Nov 2012 00:08:30 -0800 | |
changeset 114342 | 8ecf5ea9461d7a03b821f1b9cd2010937240183e |
parent 114341 | bcd9f16af6432786abd9d3ae802cede41521aeaa |
child 114343 | 57b33c0ff8bd79f6fbe5b8a1b64747bdd0f5fb14 |
push id | 23913 |
push user | emorley@mozilla.com |
push date | Wed, 28 Nov 2012 17:11:31 +0000 |
treeherder | mozilla-central@17c267a881cf [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 815972 |
milestone | 20.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/generic/nsBlockFrame.cpp +++ b/layout/generic/nsBlockFrame.cpp @@ -6072,37 +6072,36 @@ DisplayLine(nsDisplayListBuilder* aBuild // we approximate it by checking it on aFrame; if it's true for any // frame in the line, it's also true for aFrame. bool lineInline = aLine->IsInline(); bool lineMayHaveTextOverflow = aTextOverflow && lineInline; if (!intersect && !aBuilder->ShouldDescendIntoFrame(aFrame) && !lineMayHaveTextOverflow) return NS_OK; - nsDisplayListCollection collection; - nsresult rv; - // Block-level child backgrounds go on the blockBorderBackgrounds list ... // Inline-level child backgrounds go on the regular child content list. - nsDisplayListSet childLists(collection, - lineInline ? collection.Content() : collection.BlockBorderBackgrounds()); + nsDisplayListSet childLists(aLists, + lineInline ? aLists.Content() : aLists.BlockBorderBackgrounds()); + + uint32_t flags = lineInline ? nsIFrame::DISPLAY_CHILD_INLINE : 0; + nsIFrame* kid = aLine->mFirstChild; int32_t n = aLine->GetChildCount(); while (--n >= 0) { - rv = aFrame->BuildDisplayListForChild(aBuilder, kid, aDirtyRect, childLists, - lineInline ? nsIFrame::DISPLAY_CHILD_INLINE : 0); + nsresult rv = aFrame->BuildDisplayListForChild(aBuilder, kid, aDirtyRect, + childLists, flags); NS_ENSURE_SUCCESS(rv, rv); kid = kid->GetNextSibling(); } if (lineMayHaveTextOverflow) { - aTextOverflow->ProcessLine(collection, aLine.get()); - } - - collection.MoveTo(aLists); + aTextOverflow->ProcessLine(aLists, aLine.get()); + } + return NS_OK; } NS_IMETHODIMP nsBlockFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) {