From facc46fd0a85408bc05aa19b80131e3cfb5fe3dd Mon Sep 17 00:00:00 2001 From: Stein Somers Date: Wed, 22 Jul 2020 22:37:54 +0200 Subject: BTreeMap::drain_filter: replace needless unsafety and test --- src/liballoc/collections/btree/map.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'src/liballoc/collections') diff --git a/src/liballoc/collections/btree/map.rs b/src/liballoc/collections/btree/map.rs index bf5748739d4..09b24fde746 100644 --- a/src/liballoc/collections/btree/map.rs +++ b/src/liballoc/collections/btree/map.rs @@ -1681,19 +1681,12 @@ impl<'a, K: 'a, V: 'a> DrainFilterInner<'a, K, V> { edge.reborrow().next_kv().ok().map(|kv| kv.into_kv()) } - unsafe fn next_kv( - &mut self, - ) -> Option, K, V, marker::LeafOrInternal>, marker::KV>> { - let edge = self.cur_leaf_edge.as_ref()?; - unsafe { ptr::read(edge).next_kv().ok() } - } - /// Implementation of a typical `DrainFilter::next` method, given the predicate. pub(super) fn next(&mut self, pred: &mut F) -> Option<(K, V)> where F: FnMut(&K, &mut V) -> bool, { - while let Some(mut kv) = unsafe { self.next_kv() } { + while let Ok(mut kv) = self.cur_leaf_edge.take()?.next_kv() { let (k, v) = kv.kv_mut(); if pred(k, v) { *self.length -= 1; -- cgit 1.4.1-3-g733a5