Bug 1340966 Part 1 - Fix assertion in nsBlockFrame::ReflowFloat().
After adding Part 3, aState.mReflowStatus.SetNextInFlowNeedsReflow() will
assert, so fix it beforehand.
This is fixed by using MergeCompletionStatusFrom() to properly merging the
mCompletion status from aReflowStatus to aState.mReflowStatus. Because
aReflowStatus is either OverflowIncomplete or Incomplete,
aState.mReflowStatus won't violate the assertion that will be added in
nsReflowStatus::SetNextInFlowNeedsReflow().
MozReview-Commit-ID: DDWbGqwO1CL
--- a/layout/generic/nsBlockFrame.cpp
+++ b/layout/generic/nsBlockFrame.cpp
@@ -6400,17 +6400,17 @@ nsBlockFrame::ReflowFloat(BlockReflowInp
} else if (aReflowStatus.IsIncomplete() &&
(NS_UNCONSTRAINEDSIZE == aAdjustedAvailableSpace.BSize(wm))) {
// An incomplete reflow status means we should split the float
// if the height is constrained (bug 145305).
aReflowStatus.Reset();
}
if (aReflowStatus.NextInFlowNeedsReflow()) {
- aState.mReflowStatus.SetNextInFlowNeedsReflow();
+ aState.mReflowStatus.MergeCompletionStatusFrom(aReflowStatus);
}
if (aFloat->IsLetterFrame()) {
// We never split floating first letters; an incomplete state for
// such frames simply means that there is more content to be
// reflowed on the line.
if (aReflowStatus.IsIncomplete())
aReflowStatus.Reset();