Auto merge of #144205 - hkBst:flt2dec, r=workingjubilee

flt2dec: replace for loop by iter_mut

Perf is explored in https://github.com/rust-lang/rust/issues/144118, which initially showed small losses, but then also showed significant gains. Both are real, but given the smallness of the losses, this seems a good change.
This commit is contained in:
bors 2025-07-22 08:28:29 +00:00
commit c0b282f0cc

View file

@ -150,23 +150,19 @@ pub fn round_up(d: &mut [u8]) -> Option<u8> {
Some(i) => {
// d[i+1..n] is all nines
d[i] += 1;
for j in i + 1..d.len() {
d[j] = b'0';
}
d[i + 1..].fill(b'0');
None
}
None if d.len() > 0 => {
// 999..999 rounds to 1000..000 with an increased exponent
d[0] = b'1';
for j in 1..d.len() {
d[j] = b'0';
}
Some(b'0')
}
None => {
None if d.is_empty() => {
// an empty buffer rounds up (a bit strange but reasonable)
Some(b'1')
}
None => {
// 999..999 rounds to 1000..000 with an increased exponent
d[0] = b'1';
d[1..].fill(b'0');
Some(b'0')
}
}
}