File tree 1 file changed +9
-13
lines changed
1 file changed +9
-13
lines changed Original file line number Diff line number Diff line change @@ -244,13 +244,7 @@ impl Memory {
244
244
{
245
245
let relocatable: Relocatable = key. try_into ( ) . ok ( ) ?;
246
246
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 ( ) ?;
254
248
Some ( Cow :: Owned ( self . relocate_value ( & value) . ok ( ) ?. into_owned ( ) ) )
255
249
}
256
250
@@ -648,17 +642,19 @@ impl Memory {
648
642
Ok ( values)
649
643
}
650
644
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) ;
653
647
let data = if addr. segment_index < 0 {
654
648
& self . temp_data
655
649
} else {
656
650
& self . data
657
651
} ;
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)
662
658
. ok_or ( MemoryError :: UnknownMemoryCell ( Box :: new ( * addr) ) ) ?
663
659
. is_accessed ( ) )
664
660
}
You can’t perform that action at this time.
0 commit comments