From 6d0b1a68f9e794b6bdca73cde6e746381b5f773f Mon Sep 17 00:00:00 2001 From: fmoletta <99273364+fmoletta@users.noreply.github.com> Date: Wed, 1 Mar 2023 21:17:15 +0200 Subject: [PATCH] Use `Relocatable` instead of `&MaybeRelocatable` in `get_range` (#867) * Use Relocatable in get_range * Fix * Clippy --- .../cairo_keccak/keccak_hints.rs | 2 +- src/hint_processor/builtin_hint_processor/set.rs | 4 ++-- src/vm/vm_core.rs | 12 +++--------- src/vm/vm_memory/memory.rs | 8 ++++---- 4 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs b/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs index c1dcd3ea9d..983ddcc339 100644 --- a/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs +++ b/src/hint_processor/builtin_hint_processor/cairo_keccak/keccak_hints.rs @@ -145,7 +145,7 @@ pub fn block_permutation( let keccak_state_size_felts = keccak_state_size_felts.to_usize().unwrap(); let values = vm .get_range( - &MaybeRelocatable::RelocatableValue(keccak_ptr.sub_usize(keccak_state_size_felts)?), + keccak_ptr.sub_usize(keccak_state_size_felts)?, keccak_state_size_felts, ) .map_err(HintError::Memory)?; diff --git a/src/hint_processor/builtin_hint_processor/set.rs b/src/hint_processor/builtin_hint_processor/set.rs index a7d249fead..bc48466936 100644 --- a/src/hint_processor/builtin_hint_processor/set.rs +++ b/src/hint_processor/builtin_hint_processor/set.rs @@ -32,7 +32,7 @@ pub fn set_add( Err(VirtualMachineError::ValueNotPositive(Felt::new(elm_size)))?; } let elm = vm - .get_range(&MaybeRelocatable::from(elm_ptr), elm_size) + .get_range(elm_ptr, elm_size) .map_err(VirtualMachineError::Memory)?; if set_ptr > set_end_ptr { @@ -46,7 +46,7 @@ pub fn set_add( for i in (0..range_limit).step_by(elm_size) { let set_iter = vm - .get_range(&MaybeRelocatable::from(set_ptr + i), elm_size) + .get_range(set_ptr + i, elm_size) .map_err(VirtualMachineError::Memory)?; if set_iter == elm { diff --git a/src/vm/vm_core.rs b/src/vm/vm_core.rs index 4ab9e51b4b..ddc9aae591 100644 --- a/src/vm/vm_core.rs +++ b/src/vm/vm_core.rs @@ -854,7 +854,7 @@ impl VirtualMachine { ///Gets n elements from memory starting from addr (n being size) pub fn get_range( &self, - addr: &MaybeRelocatable, + addr: Relocatable, size: usize, ) -> Result>>, MemoryError> { self.segments.memory.get_range(addr, size) @@ -3723,10 +3723,7 @@ mod tests { Some(Cow::Borrowed(&value2)), Some(Cow::Borrowed(&value3)), ]; - assert_eq!( - vm.get_range(&MaybeRelocatable::from((1, 0)), 3), - Ok(expected_vec) - ); + assert_eq!(vm.get_range(Relocatable::from((1, 0)), 3), Ok(expected_vec)); } #[test] @@ -3744,10 +3741,7 @@ mod tests { None, Some(Cow::Borrowed(&value3)), ]; - assert_eq!( - vm.get_range(&MaybeRelocatable::from((1, 0)), 4), - Ok(expected_vec) - ); + assert_eq!(vm.get_range(Relocatable::from((1, 0)), 4), Ok(expected_vec)); } #[test] diff --git a/src/vm/vm_memory/memory.rs b/src/vm/vm_memory/memory.rs index f32297e542..77e8a00ab7 100644 --- a/src/vm/vm_memory/memory.rs +++ b/src/vm/vm_memory/memory.rs @@ -271,13 +271,13 @@ impl Memory { pub fn get_range( &self, - addr: &MaybeRelocatable, + addr: Relocatable, size: usize, ) -> Result>>, MemoryError> { let mut values = Vec::new(); for i in 0..size { - values.push(self.get(&addr.add_usize(i))); + values.push(self.get(&(addr + i))); } Ok(values) @@ -936,7 +936,7 @@ mod memory_tests { Some(Cow::Borrowed(&value3)), ]; assert_eq!( - memory.get_range(&MaybeRelocatable::from((1, 0)), 3), + memory.get_range(Relocatable::from((1, 0)), 3), Ok(expected_vec) ); } @@ -956,7 +956,7 @@ mod memory_tests { Some(Cow::Borrowed(&value3)), ]; assert_eq!( - memory.get_range(&MaybeRelocatable::from((1, 0)), 4), + memory.get_range(Relocatable::from((1, 0)), 4), Ok(expected_vec) ); }