if (nsnull == rs) {  return PR_FALSE;
mCurrentLine->mFloaters->AppendElement(aPlaceholder);    if (IsLeftMostChild(aPlaceholder)) { NS_FRAME_LOG(NS_FRAME_TRACE_CHILD_REFLOW, ("nsBlockReflowState::AddFloater: IsLeftMostChild, placeHolder=%p", aPlaceholder));       nscoord ox, oy; mSpaceManager->GetTranslation(ox, oy); nscoord dx = ox - (mSpaceManagerX + mBorderPadding.left); nscoord dy = oy - (mSpaceManagerY + mBorderPadding.top); mSpaceManager->Translate(-dx, -dy); PlaceFloater(aPlaceholder);   GetAvailableSpace(); mInlineReflow->UpdateBand(mCurrentBand.availSpace.x + mBorderPadding.left, mY,  mCurrentBand.availSpace.width - mBorderPadding.left - mBorderPadding.right, mCurrentBand.availSpace.height);   mSpaceManager->Translate(dx, dy);
nsBlockFrame::AddFloater(nsIPresContext* aPresContext,                         const nsReflowState& aReflowState,                         nsIFrame* aFloater,                         nsPlaceholderFrame* aPlaceholder){  // Walk up reflow state chain, looking for ourself  const nsReflowState* rs = &aReflowState;  while (nsnull != rs) {    if (rs->frame == this) {      break;    }    rs = rs->parentReflowState;  }  if (nsnull == rs) {    // Never mind    return PR_FALSE;  }  nsBlockReflowState* state = (nsBlockReflowState*) rs;  // Get the frame associated with the space manager, and get its  // nsIAnchoredItems interface  nsIFrame* frame = state->mSpaceManager->GetFrame();  nsIAnchoredItems* anchoredItems = nsnull;  frame->QueryInterface(kIAnchoredItemsIID, (void**)&anchoredItems);  NS_ASSERTION(nsnull != anchoredItems, "no anchored items interface");  if (nsnull != anchoredItems) {    anchoredItems->AddAnchoredItem(aFloater,                                   nsIAnchoredItems::anHTMLFloater,                                   this);    // Reflow the floater (the first time we do it here; later on it's    // done during the reflow of the line that contains the floater)    ReflowFloater(*aPresContext, *state, aFloater);    return PR_TRUE;  }  return PR_FALSE;}