nsSize  size; aPrevInFlow->GetSize(size); mRect.width = size.width;
mRect.width = aPrevInFlow->GetSize().width;
nsTableFrame::Init(nsIPresContext*  aPresContext,                   nsIContent*      aContent,                   nsIFrame*        aParent,                   nsIStyleContext* aContext,                   nsIFrame*        aPrevInFlow){  nsresult  rv;  // Create the cell map  // XXX Why do we do this for continuing frames?  mCellMap = new nsTableCellMap(aPresContext, *this);  if (!mCellMap) return NS_ERROR_OUT_OF_MEMORY;  // Let the base class do its processing  rv = nsHTMLContainerFrame::Init(aPresContext, aContent, aParent, aContext,                                  aPrevInFlow);  // record that children that are ignorable whitespace should be excluded   mState |= NS_FRAME_EXCLUDE_IGNORABLE_WHITESPACE;  if (aPrevInFlow) {    // set my width, because all frames in a table flow are the same width and    // code in nsTableOuterFrame depends on this being set    nsSize  size;    aPrevInFlow->GetSize(size);    mRect.width = size.width;  }  else {    NS_ASSERTION(!mTableLayoutStrategy, "strategy was created before Init was called");    nsCompatibility mode;    aPresContext->GetCompatibilityMode(&mode);    // create the strategy    mTableLayoutStrategy = (IsAutoLayout()) ? new BasicTableLayoutStrategy(this, eCompatibility_NavQuirks == mode)                                            : new FixedTableLayoutStrategy(this);  }  return rv;}