From af2cd26873a4ca90fd5c44a3b8d19ac6cfbbaf34 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Sun, 2 Jun 2019 10:41:11 -0400 Subject: [PATCH] Fix split point calculation --- src/datastore.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datastore.rs b/src/datastore.rs index 827726e..1a3d7c9 100644 --- a/src/datastore.rs +++ b/src/datastore.rs @@ -496,7 +496,7 @@ impl Store { let mut nodes = self.nodes.write().unwrap(); for (idx, state_nodes) in nodes.state_next_scan.iter_mut().enumerate() { let cmp_time = cur_time - Duration::from_secs(self.get_u64(U64Setting::RescanInterval(AddressState::from_num(idx as u8).unwrap()))); - let split_point = cmp::min(cmp::min(results - res.len(), results - (per_bucket_results * (AddressState::get_count() as usize - idx))), + let split_point = cmp::min(cmp::min(results - res.len(), (per_bucket_results * (idx + 1)) - res.len()), state_nodes.binary_search_by(|a| a.0.cmp(&cmp_time)).unwrap_or_else(|idx| idx)); let mut new_nodes = state_nodes.split_off(split_point); mem::swap(&mut new_nodes, state_nodes); -- 2.30.2