Avoid unnecessary ldexp() and pow() calls

Parse times for some large .obj files (without asan):

         File A  File B  File C
Before   1239ms   294ms   271ms
After    1037ms   203ms   190ms
This commit is contained in:
Björn Steinbrink
2016-10-24 14:45:40 +02:00
parent aa670fe91e
commit d6eeb14216

View File

@@ -472,8 +472,8 @@ static bool tryParseDouble(const char *s, const char *s_end, double *result) {
}
assemble:
*result =
(sign == '+' ? 1 : -1) * ldexp(mantissa * pow(5.0, exponent), exponent);
*result = (sign == '+' ? 1 : -1) *
(exponent ? ldexp(mantissa * pow(5.0, exponent), exponent) : mantissa);
return true;
fail:
return false;