else if ((aAttribute == nsHTMLAtoms::colspan) || (aAttribute == nsHTMLAtoms::rowspan)) { PRBool res = aResult.ParseIntWithBounds(aValue, -1, MAX_COLROWSPAN);
if (aAttribute == nsHTMLAtoms::colspan) { PRBool res = aResult.ParseIntWithBounds(aValue, -1); if (res) { PRInt32 val = aResult.GetIntegerValue();   if (val > MAX_COLSPAN || val < 0 || (0 == val && InNavQuirksMode(GetOwnerDoc()))) { aResult.SetTo(1, nsAttrValue::eInteger); } } return res; } if (aAttribute == nsHTMLAtoms::rowspan) { PRBool res = aResult.ParseIntWithBounds(aValue, -1, MAX_ROWSPAN);
nsHTMLTableCellElement::ParseAttribute(nsIAtom* aAttribute,                                       const nsAString& aValue,                                       nsAttrValue& aResult){  /* ignore these attributes, stored simply as strings     abbr, axis, ch, headers   */  if (aAttribute == nsHTMLAtoms::charoff) {    /* attributes that resolve to integers with a min of 0 */    return aResult.ParseIntWithBounds(aValue, 0);  }  else if ((aAttribute == nsHTMLAtoms::colspan) ||           (aAttribute == nsHTMLAtoms::rowspan)) {    PRBool res = aResult.ParseIntWithBounds(aValue, -1, MAX_COLROWSPAN);    if (res) {      PRInt32 val = aResult.GetIntegerValue();      // quirks mode does not honor the special html 4 value of 0      if (val < 0 || (0 == val && InNavQuirksMode(GetOwnerDoc()))) {        aResult.SetTo(1, nsAttrValue::eInteger);      }    }    return res;  }  if (aAttribute == nsHTMLAtoms::height) {    return aResult.ParseSpecialIntValue(aValue, PR_TRUE, PR_FALSE);  }  if (aAttribute == nsHTMLAtoms::width) {    return aResult.ParseSpecialIntValue(aValue, PR_TRUE, PR_FALSE);  }  if (aAttribute == nsHTMLAtoms::align) {    return ParseTableCellHAlignValue(aValue, aResult);  }  if (aAttribute == nsHTMLAtoms::bgcolor) {    return aResult.ParseColor(aValue, GetOwnerDoc());  }  if (aAttribute == nsHTMLAtoms::scope) {    return aResult.ParseEnumValue(aValue, kCellScopeTable);  }  if (aAttribute == nsHTMLAtoms::valign) {    return ParseTableVAlignValue(aValue, aResult);  }  return nsGenericHTMLElement::ParseAttribute(aAttribute, aValue, aResult);}