if (this!=firstInFlow) firstInFlow->SetColumnWidth(aColIndex, aWidth); else {    if (!mColumnWidths) { mColumnWidthsLength = mCellMap->GetColCount(); mColumnWidths = new PRInt32[mColumnWidthsLength]; nsCRT::memset (mColumnWidths, 0, mColumnWidthsLength*sizeof(PRInt32));
if (this == firstInFlow) { nsTableColFrame* colFrame = GetColFrame(aColIndex); if (colFrame) { colFrame->SetWidth(FINAL, aWidth);
void  nsTableFrame::SetColumnWidth(PRInt32 aColIndex, nscoord aWidth){  nsTableFrame * firstInFlow = (nsTableFrame *)GetFirstInFlow();  NS_ASSERTION(nsnull!=firstInFlow, "illegal state -- no first in flow");  if (this!=firstInFlow)    firstInFlow->SetColumnWidth(aColIndex, aWidth);  else  {    // Note: in the case of incremental reflow sometimes the table layout    // strategy will call to set a column width before we've allocated the    // column width array    if (!mColumnWidths) {      mColumnWidthsLength = mCellMap->GetColCount(); // mCellMap is valid since first inflow      mColumnWidths = new PRInt32[mColumnWidthsLength];      nsCRT::memset (mColumnWidths, 0, mColumnWidthsLength*sizeof(PRInt32));    }        if (nsnull!=mColumnWidths && aColIndex<mColumnWidthsLength) {      mColumnWidths[aColIndex] = aWidth;    }  }}