diff options
Diffstat (limited to 'WebCore/html')
-rw-r--r-- | WebCore/html/HTMLInputElement.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp index 163424d..6320e0c 100644 --- a/WebCore/html/HTMLInputElement.cpp +++ b/WebCore/html/HTMLInputElement.cpp @@ -340,11 +340,21 @@ bool HTMLInputElement::stepMismatch() const // double's fractional part size is DBL_MAN_DIG-bit. If the current // value is greater than step*2^DBL_MANT_DIG, the following fmod() makes // no sense. +#if PLATFORM(ANDROID) + // TODO: Upstream this change or fix the underlying cause in Android's stl_port + if (doubleValue / pow(2, static_cast<double>(DBL_MANT_DIG)) > step) +#else if (doubleValue / pow(2, DBL_MANT_DIG) > step) +#endif return false; double remainder = fmod(doubleValue, step); // Accepts errors in lower 7-bit. +#if PLATFORM(ANDROID) + // TODO: Upstream this change or fix the underlying cause in Android's stl_port + double acceptableError = step / pow(2, static_cast<double>(DBL_MANT_DIG - 7)); +#else double acceptableError = step / pow(2, DBL_MANT_DIG - 7); +#endif return acceptableError < remainder && remainder < (step - acceptableError); } // Non-RANGE types should be rejected by getAllowedValueStep(). |