Don't repeatedly reapply the carried out bottom margin when clearing long words past floats. Fixes infinite loop in the case where the margin is negative. b=153429 sr=bzbarsky r=roc+moz

This commit is contained in:
dbaron%fas.harvard.edu 2002-08-14 12:44:40 +00:00
Родитель cb597e3031
Коммит 9b467a5c57
2 изменённых файлов: 14 добавлений и 0 удалений

Просмотреть файл

@ -3766,6 +3766,13 @@ nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState& aState,
"unconstrained height on totally empty line");
aState.mY += aState.mAvailSpaceRect.height;
// We don't want to advance by the bottom margin anymore (we did it
// once at the beginning of this function, which will just be called
// again), and we certainly don't want to go back if it's negative
// (infinite loop, bug 153429).
aState.mPrevBottomMargin.Zero();
// XXX: a small optimization can be done here when paginating:
// if the new Y coordinate is past the end of the block then
// push the line and return now instead of later on after we are

Просмотреть файл

@ -3766,6 +3766,13 @@ nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState& aState,
"unconstrained height on totally empty line");
aState.mY += aState.mAvailSpaceRect.height;
// We don't want to advance by the bottom margin anymore (we did it
// once at the beginning of this function, which will just be called
// again), and we certainly don't want to go back if it's negative
// (infinite loop, bug 153429).
aState.mPrevBottomMargin.Zero();
// XXX: a small optimization can be done here when paginating:
// if the new Y coordinate is past the end of the block then
// push the line and return now instead of later on after we are