Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions vm/src/cairo_run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ pub fn cairo_run_program_with_initial_scope(
.map_err(|err| VmException::from_vm_error(&cairo_runner, err))?;

if cairo_run_config.proof_mode {
// we run an additional step to ensure that `end` is the last step execute,
// rather than the one after it.
cairo_runner.run_for_steps(1, hint_processor)?;
}
cairo_runner.end_run(
Expand Down
5 changes: 5 additions & 0 deletions vm/src/vm/vm_memory/memory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,11 @@ impl AddressSet {

pub struct Memory {
pub(crate) data: Vec<Vec<MemoryCell>>,
/// Temporary segments are used when its necessary to write data, but we
/// don't know yet where it will be located. These segments are eventually
/// relocated to the main memory acording to `relocation_rules`. For
/// example, dictionaries required to be contiguous, so each is stored in a
/// temporary and eventually relocated to a single segment.
pub(crate) temp_data: Vec<Vec<MemoryCell>>,
// relocation_rules's keys map to temp_data's indices and therefore begin at
// zero; that is, segment_index = -1 maps to key 0, -2 to key 1...
Expand Down
Loading