diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-04-01 23:04:26 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-04-01 23:04:26 +0200 |
| commit | 7ef687ec53b5477ae556f7e67ce9e6309de3341f (patch) | |
| tree | bc630924800bf9b726781a254a12ee5b8f44f3f4 /library | |
| parent | f94bc9a13fdcfbaf666188d434dcf481c46d8dfb (diff) | |
Fix underflows in counter
Diffstat (limited to 'library')
| -rw-r--r-- | library/src/meta/counter.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/library/src/meta/counter.rs b/library/src/meta/counter.rs index 1d8e642d..722c2e94 100644 --- a/library/src/meta/counter.rs +++ b/library/src/meta/counter.rs @@ -308,7 +308,7 @@ impl Counter { let offset = vt.introspector.query_before(self.selector(), location).len(); let (mut state, page) = sequence[offset].clone(); if self.is_page() { - let delta = vt.introspector.page(location).get() - page.get(); + let delta = vt.introspector.page(location).get().saturating_sub(page.get()); state.step(NonZeroUsize::ONE, delta); } Ok(state) @@ -319,7 +319,7 @@ impl Counter { let sequence = self.sequence(vt)?; let (mut state, page) = sequence.last().unwrap().clone(); if self.is_page() { - let delta = vt.introspector.pages().get() - page.get(); + let delta = vt.introspector.pages().get().saturating_sub(page.get()); state.step(NonZeroUsize::ONE, delta); } Ok(state) @@ -332,9 +332,11 @@ impl Counter { let (mut at_state, at_page) = sequence[offset].clone(); let (mut final_state, final_page) = sequence.last().unwrap().clone(); if self.is_page() { - let at_delta = vt.introspector.page(location).get() - at_page.get(); + let at_delta = + vt.introspector.page(location).get().saturating_sub(at_page.get()); at_state.step(NonZeroUsize::ONE, at_delta); - let final_delta = vt.introspector.pages().get() - final_page.get(); + let final_delta = + vt.introspector.pages().get().saturating_sub(final_page.get()); final_state.step(NonZeroUsize::ONE, final_delta); } Ok(CounterState(smallvec![at_state.first(), final_state.first()])) |
