From 37f641f79be135cbd956d7a29c7f36a06f97a4fe Mon Sep 17 00:00:00 2001 From: Dominik Maier Date: Tue, 22 Jun 2021 18:41:46 +0200 Subject: [PATCH] Metadata lookup once (#186) * metadata lookup once * fix clippy --- libafl/src/bolts/serdeany.rs | 2 +- libafl/src/observers/cmp.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libafl/src/bolts/serdeany.rs b/libafl/src/bolts/serdeany.rs index bb545a6cb4..9e6decbea4 100644 --- a/libafl/src/bolts/serdeany.rs +++ b/libafl/src/bolts/serdeany.rs @@ -7,7 +7,7 @@ use core::any::{Any, TypeId}; // yolo -/// Get a `type_id` from it's previously unpacked `u64`. +/// Get a `type_id` from its previously unpacked `u64`. /// Opposite of [`unpack_type_id(id)`]. /// /// # Safety diff --git a/libafl/src/observers/cmp.rs b/libafl/src/observers/cmp.rs index 3c7cb53061..0affc220e5 100644 --- a/libafl/src/observers/cmp.rs +++ b/libafl/src/observers/cmp.rs @@ -113,10 +113,13 @@ where where S: HasMetadata, { - if state.metadata().get::().is_none() { + #[allow(clippy::clippy::option_if_let_else)] // we can't mutate state in a closure + let meta = if let Some(meta) = state.metadata_mut().get_mut::() { + meta + } else { state.add_metadata(CmpValuesMetadata::new()); - } - let meta = state.metadata_mut().get_mut::().unwrap(); + state.metadata_mut().get_mut::().unwrap() + }; meta.list.clear(); let count = self.usable_count(); for i in 0..count {