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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user