From 65d5bd40e3e0e4fdbffebca68d86b2cd7286f79d Mon Sep 17 00:00:00 2001 From: Ignotus Peverell Date: Fri, 6 Apr 2018 19:03:57 +0100 Subject: [PATCH] Fix 33c5a983 --- chain/src/chain.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chain/src/chain.rs b/chain/src/chain.rs index 53842534f..498d066d6 100644 --- a/chain/src/chain.rs +++ b/chain/src/chain.rs @@ -87,7 +87,11 @@ impl OrphanBlockPool { let mut heights = height_idx.keys().cloned().collect::>(); heights.sort_unstable(); for h in heights.iter().rev() { - let _ = self.remove_by_height_nolock(h); + if let Some(hs) = height_idx.remove(h) { + for h in hs { + let _ = orphans.remove(&h); + } + } if orphans.len() < MAX_ORPHAN_SIZE { break; } @@ -102,10 +106,6 @@ impl OrphanBlockPool { fn remove_by_height(&self, height: &u64) -> Option> { let mut orphans = self.orphans.write().unwrap(); let mut height_idx = self.height_idx.write().unwrap(); - self.remove_by_height_nolock(height) - } - - fn remove_by_height_nolock(&self, height: &u64) -> Option> { height_idx .remove(height) .map(|hs| hs.iter().filter_map(|h| orphans.remove(h)).collect())