fixed call to ToInteger() to respect the error code

This commit is contained in:
rickg%netscape.com 1998-11-24 02:39:36 +00:00
Родитель 6e6e40b0a4
Коммит d3f830f49e
2 изменённых файлов: 20 добавлений и 12 удалений

Просмотреть файл

@ -142,13 +142,17 @@ nsHTMLFontElement::StringToAttribute(nsIAtom* aAttribute,
(aAttribute == nsHTMLAtoms::pointSize) || (aAttribute == nsHTMLAtoms::pointSize) ||
(aAttribute == nsHTMLAtoms::fontWeight)) { (aAttribute == nsHTMLAtoms::fontWeight)) {
nsAutoString tmp(aValue); nsAutoString tmp(aValue);
//rickg: fixed flaw where ToInteger error code was not being checked.
// This caused wrong default value for font size.
PRInt32 ec, v = tmp.ToInteger(&ec); PRInt32 ec, v = tmp.ToInteger(&ec);
if(NS_SUCCEEDED(ec)){
tmp.CompressWhitespace(PR_TRUE, PR_FALSE); tmp.CompressWhitespace(PR_TRUE, PR_FALSE);
PRUnichar ch = tmp.First(); PRUnichar ch = tmp.First();
aResult.SetIntValue(v, ((ch == '+') || (ch == '-')) ? aResult.SetIntValue(v, ((ch == '+') || (ch == '-')) ?
eHTMLUnit_Integer : eHTMLUnit_Enumerated); eHTMLUnit_Integer : eHTMLUnit_Enumerated);
return NS_CONTENT_ATTR_HAS_VALUE; return NS_CONTENT_ATTR_HAS_VALUE;
} }
}
if (aAttribute == nsHTMLAtoms::color) { if (aAttribute == nsHTMLAtoms::color) {
nsGenericHTMLElement::ParseColor(aValue, aResult); nsGenericHTMLElement::ParseColor(aValue, aResult);
return NS_CONTENT_ATTR_HAS_VALUE; return NS_CONTENT_ATTR_HAS_VALUE;

Просмотреть файл

@ -142,13 +142,17 @@ nsHTMLFontElement::StringToAttribute(nsIAtom* aAttribute,
(aAttribute == nsHTMLAtoms::pointSize) || (aAttribute == nsHTMLAtoms::pointSize) ||
(aAttribute == nsHTMLAtoms::fontWeight)) { (aAttribute == nsHTMLAtoms::fontWeight)) {
nsAutoString tmp(aValue); nsAutoString tmp(aValue);
//rickg: fixed flaw where ToInteger error code was not being checked.
// This caused wrong default value for font size.
PRInt32 ec, v = tmp.ToInteger(&ec); PRInt32 ec, v = tmp.ToInteger(&ec);
if(NS_SUCCEEDED(ec)){
tmp.CompressWhitespace(PR_TRUE, PR_FALSE); tmp.CompressWhitespace(PR_TRUE, PR_FALSE);
PRUnichar ch = tmp.First(); PRUnichar ch = tmp.First();
aResult.SetIntValue(v, ((ch == '+') || (ch == '-')) ? aResult.SetIntValue(v, ((ch == '+') || (ch == '-')) ?
eHTMLUnit_Integer : eHTMLUnit_Enumerated); eHTMLUnit_Integer : eHTMLUnit_Enumerated);
return NS_CONTENT_ATTR_HAS_VALUE; return NS_CONTENT_ATTR_HAS_VALUE;
} }
}
if (aAttribute == nsHTMLAtoms::color) { if (aAttribute == nsHTMLAtoms::color) {
nsGenericHTMLElement::ParseColor(aValue, aResult); nsGenericHTMLElement::ParseColor(aValue, aResult);
return NS_CONTENT_ATTR_HAS_VALUE; return NS_CONTENT_ATTR_HAS_VALUE;