зеркало из https://github.com/mozilla/gecko-dev.git
Bug 282672 : nsSchemaValidator::IsValidSchemaFloat needs fixed : r=doron
This commit is contained in:
Родитель
b940c3569f
Коммит
d800635508
|
@ -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;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче