spacing->SetBorderStyle(NS_SIDE_BOTTOM, NS_STYLE_BORDER_STYLE_NONE);
border->SetBorderStyle(NS_SIDE_BOTTOM, NS_STYLE_BORDER_STYLE_NONE);
void nsTableFrame::ProcessGroupRules(nsIPresContext* aPresContext){  PRInt32 numCols = GetColCount();  // process row groups  nsIFrame* iFrame;  for (iFrame = mFrames.FirstChild(); iFrame; iFrame->GetNextSibling(&iFrame)) {    nsIAtom* frameType;    iFrame->GetFrameType(&frameType);    if (nsLayoutAtoms::tableRowGroupFrame == frameType) {      nsTableRowGroupFrame* rgFrame = (nsTableRowGroupFrame *)iFrame;      PRInt32 startRow = rgFrame->GetStartRowIndex();      PRInt32 numGroupRows;      rgFrame->GetRowCount(numGroupRows, PR_FALSE);      PRInt32 endRow = startRow + numGroupRows - 1;      if (startRow == endRow) {        continue;      }      for (PRInt32 rowX = startRow; rowX <= endRow; rowX++) {        for (PRInt32 colX = 0; colX < numCols; colX++) {          PRBool originates;          nsTableCellFrame* cell = GetCellInfoAt(rowX, colX, &originates);          if (originates) {            nsCOMPtr<nsIStyleContext> styleContext;            cell->GetStyleContext(getter_AddRefs(styleContext));            nsStyleSpacing* spacing = (nsStyleSpacing*)styleContext->GetMutableStyleData(eStyleStruct_Spacing);            if (rowX == startRow) {               spacing->SetBorderStyle(NS_SIDE_BOTTOM, NS_STYLE_BORDER_STYLE_NONE);            }            else if (rowX == endRow) {               spacing->SetBorderStyle(NS_SIDE_TOP, NS_STYLE_BORDER_STYLE_NONE);            }            else {              spacing->SetBorderStyle(NS_SIDE_TOP, NS_STYLE_BORDER_STYLE_NONE);              spacing->SetBorderStyle(NS_SIDE_BOTTOM, NS_STYLE_BORDER_STYLE_NONE);            }            styleContext->RecalcAutomaticData(aPresContext);          }        }      }    }    NS_IF_RELEASE(frameType);  }}