Skip to content

Commit f818ab3

Browse files
refactor: implement get_cell to share code
Signed-off-by: Dori Medini <[email protected]>
1 parent d1427e8 commit f818ab3

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

vm/src/vm/vm_memory/memory.rs

+9-13
Original file line numberDiff line numberDiff line change
@@ -244,13 +244,7 @@ impl Memory {
244244
{
245245
let relocatable: Relocatable = key.try_into().ok()?;
246246

247-
let data = if relocatable.segment_index.is_negative() {
248-
&self.temp_data
249-
} else {
250-
&self.data
251-
};
252-
let (i, j) = from_relocatable_to_indexes(relocatable);
253-
let value = data.get(i)?.get(j)?.get_value()?;
247+
let value = self.get_cell(relocatable)?.get_value()?;
254248
Some(Cow::Owned(self.relocate_value(&value).ok()?.into_owned()))
255249
}
256250

@@ -648,17 +642,19 @@ impl Memory {
648642
Ok(values)
649643
}
650644

651-
pub fn is_accessed(&self, addr: &Relocatable) -> Result<bool, MemoryError> {
652-
let (i, j) = from_relocatable_to_indexes(*addr);
645+
fn get_cell(&self, addr: Relocatable) -> Option<&MemoryCell> {
646+
let (i, j) = from_relocatable_to_indexes(addr);
653647
let data = if addr.segment_index < 0 {
654648
&self.temp_data
655649
} else {
656650
&self.data
657651
};
658-
Ok(data
659-
.get(i)
660-
.ok_or(MemoryError::UnknownMemoryCell(Box::new(*addr)))?
661-
.get(j)
652+
data.get(i)?.get(j)
653+
}
654+
655+
pub fn is_accessed(&self, addr: &Relocatable) -> Result<bool, MemoryError> {
656+
Ok(self
657+
.get_cell(*addr)
662658
.ok_or(MemoryError::UnknownMemoryCell(Box::new(*addr)))?
663659
.is_accessed())
664660
}

0 commit comments

Comments
 (0)