ancestors is set instead of map (#17363)

This commit is contained in:
Jeff Washington (jwash)
2021-05-24 17:01:02 -05:00
committed by GitHub
parent d8bc56fa51
commit dd22ae047b
3 changed files with 10 additions and 10 deletions

View File

@ -83,7 +83,7 @@ impl From<&Ancestors> for HashMap<Slot, usize> {
fn from(source: &Ancestors) -> HashMap<Slot, usize> { fn from(source: &Ancestors) -> HashMap<Slot, usize> {
let mut result = HashMap::with_capacity(source.len()); let mut result = HashMap::with_capacity(source.len());
source.keys().iter().for_each(|slot| { source.keys().iter().for_each(|slot| {
result.insert(*slot, *source.get(slot).unwrap()); result.insert(*slot, 0);
}); });
result result
} }
@ -102,15 +102,15 @@ impl Ancestors {
} }
} }
pub fn get(&self, slot: &Slot) -> Option<&usize> { pub fn get(&self, slot: &Slot) -> bool {
if self.large_range_slots.is_empty() { if self.large_range_slots.is_empty() {
if slot < &self.min || slot >= &self.max { if slot < &self.min || slot >= &self.max {
return None; return false;
} }
let slot = self.slot_index(slot); let slot = self.slot_index(slot);
self.slots[slot].as_ref() self.slots[slot].is_some()
} else { } else {
self.large_range_slots.get(slot) self.large_range_slots.get(slot).is_some()
} }
} }
@ -272,10 +272,10 @@ pub mod tests {
let key = item.0; let key = item.0;
min = std::cmp::min(min, *key); min = std::cmp::min(min, *key);
max = std::cmp::max(max, *key); max = std::cmp::max(max, *key);
assert_eq!(ancestors.get(&key).unwrap(), item.1); assert!(ancestors.get(&key));
} }
for slot in min - 1..max + 2 { for slot in min - 1..max + 2 {
assert_eq!(ancestors.get(&slot), hashset.get(&slot)); assert_eq!(ancestors.get(&slot), hashset.contains(&slot));
} }
} }

View File

@ -1185,8 +1185,8 @@ impl Bank {
let mut ancestors = Vec::with_capacity(1 + new.parents().len()); let mut ancestors = Vec::with_capacity(1 + new.parents().len());
ancestors.push((new.slot(), 0)); ancestors.push((new.slot(), 0));
new.parents().iter().enumerate().for_each(|(i, p)| { new.parents().iter().for_each(|p| {
ancestors.push((p.slot(), i + 1)); ancestors.push((p.slot(), 0));
}); });
new.ancestors = Ancestors::from(ancestors); new.ancestors = Ancestors::from(ancestors);

View File

@ -143,7 +143,7 @@ impl<T: Serialize + Clone> StatusCache<T> {
if let Some(stored_forks) = keymap.get(key_slice) { if let Some(stored_forks) = keymap.get(key_slice) {
let res = stored_forks let res = stored_forks
.iter() .iter()
.find(|(f, _)| ancestors.get(f).is_some() || self.roots.get(f).is_some()) .find(|(f, _)| ancestors.get(f) || self.roots.get(f).is_some())
.cloned(); .cloned();
if res.is_some() { if res.is_some() {
return res; return res;