1
Fork 0

Index a single time in check_stack

This commit is contained in:
David Tolnay 2022-01-18 19:21:18 -08:00
parent a37d272892
commit 377c9dbabf
No known key found for this signature in database
GPG key ID: F9BA143B95FF6D82

View file

@ -380,24 +380,25 @@ impl Printer {
fn check_stack(&mut self, mut k: usize) { fn check_stack(&mut self, mut k: usize) {
while let Some(&x) = self.scan_stack.front() { while let Some(&x) = self.scan_stack.front() {
match self.buf[x].token { let mut entry = &mut self.buf[x];
match entry.token {
Token::Begin(_) => { Token::Begin(_) => {
if k == 0 { if k == 0 {
break; break;
} }
self.scan_stack.pop_front().unwrap(); self.scan_stack.pop_front().unwrap();
self.buf[x].size += self.right_total; entry.size += self.right_total;
k -= 1; k -= 1;
} }
Token::End => { Token::End => {
// paper says + not =, but that makes no sense. // paper says + not =, but that makes no sense.
self.scan_stack.pop_front().unwrap(); self.scan_stack.pop_front().unwrap();
self.buf[x].size = 1; entry.size = 1;
k += 1; k += 1;
} }
_ => { _ => {
self.scan_stack.pop_front().unwrap(); self.scan_stack.pop_front().unwrap();
self.buf[x].size += self.right_total; entry.size += self.right_total;
if k == 0 { if k == 0 {
break; break;
} }