Fix endianness bug in write_digit2_separated
This commit is contained in:
parent
fc1783fcc6
commit
074cc781cb
@ -558,7 +558,13 @@ inline void write_digit2_separated(char* buf, unsigned a, unsigned b,
|
||||
auto usep = static_cast<unsigned long long>(sep);
|
||||
// Add ASCII '0' to each digit byte and insert separators.
|
||||
digits |= 0x3030003030003030 | (usep << 16) | (usep << 40);
|
||||
memcpy(buf, &digits, 8);
|
||||
if (is_big_endian()) {
|
||||
char tmp[8];
|
||||
memcpy(tmp, &digits, 8);
|
||||
std::reverse_copy(tmp, tmp + 8, buf);
|
||||
} else {
|
||||
memcpy(buf, &digits, 8);
|
||||
}
|
||||
}
|
||||
|
||||
template <typename Period> FMT_CONSTEXPR inline const char* get_units() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user