Don't underflow on no ports

If ports are empty we underflow on `len()-1`, which is bad. Stop doing
that.
This commit is contained in:
John Doty 2022-12-19 19:07:05 -08:00
parent 81de013103
commit 0bb3fac61b

View file

@ -399,7 +399,10 @@ impl UI {
KeyEvent { code: KeyCode::Down, .. } KeyEvent { code: KeyCode::Down, .. }
| KeyEvent { code: KeyCode::Char('k'), .. } => { | KeyEvent { code: KeyCode::Char('k'), .. } => {
let index = match self.selection.selected() { let index = match self.selection.selected() {
Some(i) => (i + 1).min(self.ports.len() - 1), Some(i) => {
assert!(self.ports.len() > 0, "We must have ports because we have a selection.");
(i + 1).min(self.ports.len() - 1)
}
None => 0, None => 0,
}; };
self.selection.select(Some(index)); self.selection.select(Some(index));
@ -466,11 +469,15 @@ impl UI {
} }
} }
let selected = match self.selection.selected() { let selected = if self.ports.len() == 0 {
Some(i) => i.min(self.ports.len() - 1), None // No ports, no selection.
None => 0, } else {
match self.selection.selected() {
Some(i) => Some(i.min(self.ports.len() - 1)),
None => Some(0),
}
}; };
self.selection.select(Some(selected)); self.selection.select(selected);
} }
Some(UIEvent::ServerLine(line)) => { Some(UIEvent::ServerLine(line)) => {
while self.lines.len() >= 1024 { while self.lines.len() >= 1024 {