} else if (aState.currentBand->count == 2) { if (aState.currentBand->rects[0].width > aState.currentBand->rects[1].width) { isRightFloater = PR_TRUE; } else { isLeftFloater = PR_TRUE;
if (!haveFloater) { break; } if (clearYMost == mY - mBorderPadding.top) {  break; }
void nsBlockFrame::ClearFloaters(nsBlockReflowState& aState, PRUint32 aClear){  // Translate the coordinate space  aState.spaceManager->Translate(aState.borderPadding.left, 0);getBand:  nscoord y = aState.y + aState.topMargin;  PRBool  isLeftFloater = PR_FALSE;  PRBool  isRightFloater = PR_FALSE;  // Get a band of available space  aState.spaceManager->GetBandData(y, aState.availSize, *aState.currentBand);  if (aState.currentBand->count == 1) {    if (aState.currentBand->rects[0].width != aState.availSize.width) {      // Some of the space is taken up by floaters      if (aState.currentBand->rects[0].x > 0) {        isLeftFloater = PR_TRUE;      }      if (aState.currentBand->rects[0].XMost() < aState.availSize.width) {        isRightFloater = PR_TRUE;      }    }  } else if (aState.currentBand->count == 2) {    if (aState.currentBand->rects[0].width > aState.currentBand->rects[1].width) {      isRightFloater = PR_TRUE;    } else {      isLeftFloater = PR_TRUE;      // There may also be a right floater      if (aState.currentBand->rects[1].XMost() < aState.availSize.width) {        isRightFloater = PR_TRUE;      }    }  } else {    // Must be both left and right floaters    isLeftFloater = PR_TRUE;    isRightFloater = PR_TRUE;  }  if (isLeftFloater) {    if ((aClear == NS_STYLE_CLEAR_LEFT) || (aClear == NS_STYLE_CLEAR_BOTH)) {      aState.y += aState.currentBand->rects[0].height;      goto getBand;    }  }  if (isRightFloater) {    if ((aClear == NS_STYLE_CLEAR_RIGHT) || (aClear == NS_STYLE_CLEAR_BOTH)) {      aState.y += aState.currentBand->rects[0].height;      goto getBand;    }  }  aState.spaceManager->Translate(-aState.borderPadding.left, 0);}