From 938552a2289d6018e78d9626f011d8eea59be7d9 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Mon, 17 Jul 2017 14:28:02 +0200 Subject: Use checked NonZero constructor instead of explicit null check in btree --- src/liballoc/btree/node.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/liballoc') diff --git a/src/liballoc/btree/node.rs b/src/liballoc/btree/node.rs index a6cbab8497b..06d3a113b94 100644 --- a/src/liballoc/btree/node.rs +++ b/src/liballoc/btree/node.rs @@ -382,21 +382,19 @@ impl NodeRef { >, Self > { - if self.as_leaf().parent.is_null() { - Err(self) - } else { + if let Some(non_zero) = NonZero::new(self.as_leaf().parent as *const LeafNode) { Ok(Handle { node: NodeRef { height: self.height + 1, - node: unsafe { - NonZero::new_unchecked(self.as_leaf().parent as *mut LeafNode) - }, + node: non_zero, root: self.root, _marker: PhantomData }, idx: self.as_leaf().parent_idx as usize, _marker: PhantomData }) + } else { + Err(self) } } -- cgit 1.4.1-3-g733a5