pfd->mCombinedArea.UnionRect(pfd->mCombinedArea, nsRect(0, 0, pfd->mBounds.width, pfd->mBounds.height));
nsLineLayout::ApplyFrameJustification(PerSpanData* aPSD, FrameJustificationState* aState){  NS_ASSERTION(aPSD, "null arg");  NS_ASSERTION(aState, "null arg");  nscoord deltaX = 0;  for (PerFrameData* pfd = aPSD->mFirstFrame; pfd != nsnull; pfd = pfd->mNext) {    // Don't reposition bullets (and other frames that occur out of X-order?)    if (!pfd->GetFlag(PFD_ISBULLET)) {      nscoord dw = 0;            pfd->mBounds.x += deltaX;            if (PR_TRUE == pfd->GetFlag(PFD_ISTEXTFRAME)) {        if (aState->mTotalWidthForSpaces > 0 &&            aState->mTotalNumSpaces > 0 &&            // we divide by this value, so must be non-zero            aState->mTotalNumLetters >0               // we divide by this value, so must be non-zero           ) {          aState->mNumSpacesProcessed += pfd->mJustificationNumSpaces;          nscoord newAllocatedWidthForSpaces =            (aState->mTotalWidthForSpaces*aState->mNumSpacesProcessed)              /aState->mTotalNumSpaces;                    dw += newAllocatedWidthForSpaces - aState->mWidthForSpacesProcessed;          aState->mWidthForSpacesProcessed = newAllocatedWidthForSpaces;        }        if (aState->mTotalWidthForLetters > 0) {          aState->mNumLettersProcessed += pfd->mJustificationNumLetters;          nscoord newAllocatedWidthForLetters =            (aState->mTotalWidthForLetters*aState->mNumLettersProcessed)              /aState->mTotalNumLetters;                    dw += newAllocatedWidthForLetters - aState->mWidthForLettersProcessed;          aState->mWidthForLettersProcessed = newAllocatedWidthForLetters;        }      }      else {        if (nsnull != pfd->mSpan) {          dw += ApplyFrameJustification(pfd->mSpan, aState);        }      }            pfd->mBounds.width += dw;      // Make sure mCombinedArea includes the new bounds.      // Don't just set it to the new bounds because it could include      // the overflow of some children of the frame... (e.g., rel pos children).      pfd->mCombinedArea.UnionRect(pfd->mCombinedArea,        nsRect(0, 0, pfd->mBounds.width, pfd->mBounds.height));      // Ah, but what if this frame is actually a span with a child      // that overflows and the child is moved by justification? How      // do we ensure that mCombinedArea includes that child? NO      // PROBLEM! RelativePositionFrames gets called later, and it      // unions all child frame bounds back into our combinedArea.      deltaX += dw;      pfd->mFrame->SetRect(pfd->mBounds);    }  }  return deltaX;}