1
0
Fork 0

Codechange: Optimise FormatNumber by removing seprintf calls (#10659)

pull/10476/merge
Charles Pigott 2023-04-16 23:04:24 +01:00 committed by GitHub
parent 15c3bc456f
commit e20a6f8ebb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 3 deletions

View File

@ -330,7 +330,7 @@ static char *FormatNumber(char *buff, int64 number, const char *last, const char
int thousands_offset = (max_digits - fractional_digits - 1) % 3; int thousands_offset = (max_digits - fractional_digits - 1) % 3;
if (number < 0) { if (number < 0) {
buff += seprintf(buff, last, "-"); if (buff != last) *buff++ = '-';
number = -number; number = -number;
} }
@ -340,7 +340,7 @@ static char *FormatNumber(char *buff, int64 number, const char *last, const char
if (i == max_digits - fractional_digits) { if (i == max_digits - fractional_digits) {
const char *decimal_separator = _settings_game.locale.digit_decimal_separator.c_str(); const char *decimal_separator = _settings_game.locale.digit_decimal_separator.c_str();
if (StrEmpty(decimal_separator)) decimal_separator = _langpack.langpack->digit_decimal_separator; if (StrEmpty(decimal_separator)) decimal_separator = _langpack.langpack->digit_decimal_separator;
buff += seprintf(buff, last, "%s", decimal_separator); buff = strecpy(buff, decimal_separator, last);
} }
uint64 quot = 0; uint64 quot = 0;
@ -349,7 +349,7 @@ static char *FormatNumber(char *buff, int64 number, const char *last, const char
num = num % divisor; num = num % divisor;
} }
if ((tot |= quot) || i >= max_digits - zerofill) { if ((tot |= quot) || i >= max_digits - zerofill) {
buff += seprintf(buff, last, "%i", (int)quot); if (buff != last) *buff++ = '0' + quot; // quot is a single digit
if ((i % 3) == thousands_offset && i < max_digits - 1 - fractional_digits) buff = strecpy(buff, separator, last); if ((i % 3) == thousands_offset && i < max_digits - 1 - fractional_digits) buff = strecpy(buff, separator, last);
} }