chore: set to zero in spend loop

This commit is contained in:
rvcas 2022-07-07 13:43:24 -04:00 committed by Kasey White
parent 93f7849fc0
commit e8aa013aa4
2 changed files with 6 additions and 5 deletions

View File

@ -407,6 +407,7 @@ impl Program<NamedDeBruijn> {
let mut machine = Machine::new(Costs::default(), ExBudget::default(), 200);
let (term, _, _) = machine.run(&self.term)?;
Ok(term)
}
}

View File

@ -13,7 +13,7 @@ pub struct Machine {
frames: Vec<Context>,
slippage: u32,
env: Vec<Value>,
unbudgeted_steps: Vec<u32>,
unbudgeted_steps: [u32; 8],
}
impl Machine {
@ -24,7 +24,7 @@ impl Machine {
slippage,
frames: vec![Context::NoFrame],
env: vec![],
unbudgeted_steps: vec![0; 8],
unbudgeted_steps: [0; 8],
}
}
@ -91,7 +91,7 @@ impl Machine {
}
fn return_compute(&mut self, value: Value) -> Result<Term<NamedDeBruijn>, Error> {
// TODO: avoid unwrap and possible just return an err when None
// TODO: avoid unwrap if possible and just return an err when None
// but honestly it should never be empty anyways because Machine
// is initialized with `Context::NoFrame`.
let frame = self.frames.last().cloned().unwrap();
@ -237,10 +237,10 @@ impl Machine {
unspent_step_budget.occurences(self.unbudgeted_steps[i] as i32);
self.spend_budget(unspent_step_budget)?;
self.unbudgeted_steps[i] = 0;
}
self.unbudgeted_steps = vec![0; 8];
Ok(())
}