From b68375d4629e0d8c4e20990df25830d5d7e60b19 Mon Sep 17 00:00:00 2001 From: debris Date: Mon, 21 Aug 2017 10:19:53 +0200 Subject: [PATCH] less unsafe code --- util/src/trie/triedb.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/util/src/trie/triedb.rs b/util/src/trie/triedb.rs index 9631f1ad9..ab7542fae 100644 --- a/util/src/trie/triedb.rs +++ b/util/src/trie/triedb.rs @@ -292,17 +292,15 @@ impl<'a> TrieDBIterator<'a> { /// The present key. fn key(&self) -> Bytes { // collapse the key_nibbles down to bytes. - unsafe { - let size = self.key_nibbles.len() / 2; - let mut ptr = self.key_nibbles.as_ptr(); - let mut result = Bytes::with_capacity(size); - - for _ in 0..size { - result.push(*ptr * 16 + *ptr.offset(1)); - ptr = ptr.offset(2); - } - result + let nibbles = &self.key_nibbles; + let mut i = 0; + let mut result = Bytes::with_capacity(nibbles.len() / 2); + let len = nibbles.len() - 1; + while i < len { + result.push(nibbles[i] * 16 + nibbles[i + 1]); + i += 2; } + result } }