PRInt32 numCols = GetColCount();
nsTableFrame::SetColumnDimensions(nscoord         aHeight,                                  const nsMargin& aBorderPadding){  nscoord cellSpacingX = GetCellSpacingX();  nscoord cellSpacingY = GetCellSpacingY();  nscoord colHeight = aHeight -= aBorderPadding.top + aBorderPadding.bottom +                                 2* cellSpacingY;  nsIFrame* colGroupFrame = mColGroups.FirstChild();  PRInt32 colX = 0;  nsPoint colGroupOrigin(aBorderPadding.left + cellSpacingX,                         aBorderPadding.top + cellSpacingY);  PRInt32 numCols = GetColCount();  while (nsnull != colGroupFrame) {    nscoord colGroupWidth = 0;    nsIFrame* colFrame = colGroupFrame->GetFirstChild(nsnull);    nsPoint colOrigin(0,0);    while (nsnull != colFrame) {      if (NS_STYLE_DISPLAY_TABLE_COLUMN ==          colFrame->GetStyleDisplay()->mDisplay) {        NS_ASSERTION(colX < numCols, "invalid number of columns");        nscoord colWidth = GetColumnWidth(colX);        nsRect colRect(colOrigin.x, colOrigin.y, colWidth, colHeight);        colFrame->SetRect(colRect);        colOrigin.x += colWidth + cellSpacingX;        colGroupWidth += colWidth + cellSpacingX;        colX++;      }      colFrame = colFrame->GetNextSibling();    }    if (colGroupWidth) {      colGroupWidth -= cellSpacingX;    }    nsRect colGroupRect(colGroupOrigin.x, colGroupOrigin.y, colGroupWidth, colHeight);    colGroupFrame->SetRect(colGroupRect);    colGroupFrame = colGroupFrame->GetNextSibling();    colGroupOrigin.x += colGroupWidth + cellSpacingX;  }}