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]));
}
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);
}
updates