Don't calculate symbol width twice

This is potentially costly so we should avoid calling width()
This commit is contained in:
Blaž Hrastnik 2022-01-19 17:01:26 +09:00
parent 66a8612351
commit ac81b47a41

View file

@ -535,9 +535,10 @@ pub fn diff<'a>(&self, other: &'a Buffer) -> Vec<(u16, u16, &'a Cell)> {
updates.push((x, y, &next_buffer[i])); updates.push((x, y, &next_buffer[i]));
} }
to_skip = current.symbol.width().saturating_sub(1); let current_width = current.symbol.width();
to_skip = current_width.saturating_sub(1);
let affected_width = std::cmp::max(current.symbol.width(), previous.symbol.width()); let affected_width = std::cmp::max(current_width, previous.symbol.width());
invalidated = std::cmp::max(affected_width, invalidated).saturating_sub(1); invalidated = std::cmp::max(affected_width, invalidated).saturating_sub(1);
} }
updates updates