return !atEnd;
if (mRow) { mRowIndex = mRow->GetRowIndex();  PRInt32 rgRowIndex = mRowIndex - mRowGroupStart; nsVoidArray* row = (nsVoidArray*)mCellMap->mRows.ElementAt(rgRowIndex); if (!row) ABORT1(PR_FALSE); PRInt32 rowSize = row->Count(); for (mColIndex = mAreaStart.x; mColIndex <= mAreaEnd.x; mColIndex++) { CellData* cellData = (mColIndex < rowSize) ? (CellData*)row->ElementAt(mColIndex) : nsnull; if (!cellData) { nsRect damageArea; cellData = mCellMap->AppendCell(*mTableCellMap, nsnull, rgRowIndex, PR_FALSE, damageArea); if (!cellData) ABORT1(PR_FALSE); } if (cellData && (cellData->IsOrig() || cellData->IsDead())) { break; } } mIsNewRow = PR_TRUE; mAtEnd    = PR_FALSE; } else ABORT1(PR_FALSE);  return !mAtEnd;
BCMapBorderIterator::SetNewRow(nsTableRowFrame* aRow){  prevRow = row;  row      = (aRow) ? aRow : row->GetNextRow();   if (row) {    isNewRow = PR_TRUE;    y = row->GetRowIndex();    x = startX;  }  else {    atEnd = PR_TRUE;  }  return !atEnd;}