From 3d96da9f2c5b04e5be539f51fc3fb300dd9c11d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Eng=C3=A9libert?= <tuxmain@zettascript.org> Date: Fri, 3 Dec 2021 17:33:10 +0100 Subject: [PATCH] perf(db): GvaUtxoIdDbV1::from_bytes avoid zeroed init --- db/src/keys/gva_utxo_id.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/db/src/keys/gva_utxo_id.rs b/db/src/keys/gva_utxo_id.rs index 1f624a8..fe3bba0 100644 --- a/db/src/keys/gva_utxo_id.rs +++ b/db/src/keys/gva_utxo_id.rs @@ -123,17 +123,11 @@ impl FromBytes for GvaUtxoIdDbV1 { type Err = CorruptedBytes; fn from_bytes(bytes: &[u8]) -> std::result::Result<Self, Self::Err> { - if bytes.len() == 69 { - // TODO uncomment when feature const_generics became stable ! - /*let mut buffer = uninit_array![u8; 69]; - buffer.as_out().copy_from_slice(bytes); - Ok(Self(unsafe { std::mem::transmute(buffer) }))*/ - let mut buffer = [0u8; 69]; - buffer.copy_from_slice(bytes); - Ok(Self(buffer)) - } else { - Err(CorruptedBytes("db corrupted".to_owned())) - } + Ok(Self( + bytes + .try_into() + .map_err(|_| CorruptedBytes("db corrupted".to_owned()))?, + )) } } -- GitLab