Bug 282672 : nsSchemaValidator::IsValidSchemaFloat needs fixed : r=doron

This commit is contained in:
jwatt%jwatt.org 2005-02-28 00:31:43 +00:00
Родитель b940c3569f
Коммит d800635508
1 изменённых файлов: 5 добавлений и 17 удалений

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

@ -2410,26 +2410,14 @@ nsresult nsSchemaValidator::ValidateBuiltinTypeFloat(const nsAString & aNodeValu
} }
PRBool nsSchemaValidator::IsValidSchemaFloat(const nsAString & aNodeValue, float *aResult){ PRBool nsSchemaValidator::IsValidSchemaFloat(const nsAString & aNodeValue, float *aResult){
PRBool isValid = PR_FALSE; PRBool isValid = PR_TRUE;
NS_ConvertUTF16toUTF8 temp(aNodeValue); nsAutoString temp(aNodeValue);
char * pEnd;
float floatValue = strtod(temp.get(), &pEnd);
if (*pEnd == '\0') PRInt32 errorCode;
isValid = PR_TRUE; float floatValue = temp.ToFloat(&errorCode);
if (NS_FAILED(errorCode))
// convert back to string and compare
char floatStr[50];
PR_snprintf(floatStr, sizeof(floatStr), "%f", floatValue);
if (strcmp(temp.get(), floatStr) == 0)
isValid = PR_FALSE; isValid = PR_FALSE;
#ifdef DEBUG
if (!isValid)
printf("\n Not valid float: %f", floatValue);
#endif
if (aResult) if (aResult)
*aResult = floatValue; *aResult = floatValue;
return isValid; return isValid;