nsPoint origin; PlaceFloater(fc, &isLeftFloater, &origin);   nsRect combinedArea = fc->mCombinedArea; combinedArea.x += origin.x; combinedArea.y += origin.y; CombineRects(combinedArea, mFloaterCombinedArea);
PlaceFloater(fc, &isLeftFloater);
nsBlockReflowState::AddFloater(nsLineLayout& aLineLayout,                               nsPlaceholderFrame* aPlaceholder,                               PRBool aInitialReflow){  NS_PRECONDITION(nsnull != mCurrentLine, "null ptr");  // Allocate a nsFloaterCache for the floater  nsFloaterCache* fc = mFloaterCacheFreeList.Alloc();  fc->mPlaceholder = aPlaceholder;  fc->mIsCurrentLineFloater = aLineLayout.CanPlaceFloaterNow();  // Now place the floater immediately if possible. Otherwise stash it  // away in mPendingFloaters and place it later.  if (fc->mIsCurrentLineFloater) {    // Record this floater in the current-line list    mCurrentLineFloaters.Append(fc);    // Because we are in the middle of reflowing a placeholder frame    // within a line (and possibly nested in an inline frame or two    // that's a child of our block) we need to restore the space    // manager's translation to the space that the block resides in    // before placing the floater.    nscoord ox, oy;    mSpaceManager->GetTranslation(ox, oy);    nscoord dx = ox - mSpaceManagerX;    nscoord dy = oy - mSpaceManagerY;    mSpaceManager->Translate(-dx, -dy);    // Reflow the floater    mBlock->ReflowFloater(*this, aPlaceholder, fc->mCombinedArea,                          fc->mMargins, fc->mOffsets);    // And then place it    PRBool isLeftFloater;    nsPoint origin;    PlaceFloater(fc, &isLeftFloater, &origin);    // Update the floater combined-area    nsRect combinedArea = fc->mCombinedArea;    combinedArea.x += origin.x;    combinedArea.y += origin.y;    CombineRects(combinedArea, mFloaterCombinedArea);    // Pass on updated available space to the current inline reflow engine    GetAvailableSpace();    aLineLayout.UpdateBand(mAvailSpaceRect.x + BorderPadding().left, mY,                           mAvailSpaceRect.width,                           mAvailSpaceRect.height,                           isLeftFloater);    // Restore coordinate system    mSpaceManager->Translate(dx, dy);  }  else {    // This floater will be placed after the line is done (it is a    // below-current-line floater).    mBelowCurrentLineFloaters.Append(fc);  }}