( '$bb_get_with_offset'(Key, OldValue, OldOffset) ->
call_cleanup((store_global_var_with_offset(Key, NewValue) ; false),
reset_global_var_at_offset(Key, OldValue, OldOffset))
- ; call_cleanup((store_global_var(Key, NewValue, _) ; false),
+ ; call_cleanup((store_global_var_with_offset(Key, NewValue) ; false),
reset_global_var_at_key(Key))
).
self.stack.index_and_frame_mut(e)[i] = self[RegType::Temp(i)].clone();
}
- self.stack.index_and_frame_mut(e)[self.num_of_args + 1] = Addr::Con(Constant::CutPoint(self.b0));
- self.stack.index_and_frame_mut(e)[self.num_of_args + 2] = Addr::Con(Constant::Usize(self.num_of_args));
+ self.stack.index_and_frame_mut(e)[self.num_of_args + 1] =
+ Addr::Con(Constant::CutPoint(self.b0));
+ self.stack.index_and_frame_mut(e)[self.num_of_args + 2] =
+ Addr::Con(Constant::Usize(self.num_of_args));
self.verify_attributes();
attr_var_init_queue_b,
attr_var_init_bindings_b);
- machine_st.b = machine_st.stack.index_or_frame(b).prelude.b;
machine_st.truncate_stack();
+ machine_st.b = machine_st.stack.index_or_frame(b).prelude.b;
machine_st.hb = machine_st.heap.h;
machine_st.p += offset;
machine_st.attr_var_init.backtrack(
attr_var_init_queue_b,
- attr_var_init_bindings_b
+ attr_var_init_bindings_b,
);
- machine_st.b = machine_st.stack.index_or_frame(b).prelude.b;
machine_st.truncate_stack();
+ machine_st.b = machine_st.stack.index_or_frame(b).prelude.b;
machine_st.hb = machine_st.heap.h;
machine_st.p += 1;
if machine_st.fail {
return Ok(());
}
-
+
machine_st.p = CodePtr::CallN(arity, machine_st.p.local(), machine_st.last_call);
}
ClauseType::Inlined(inlined) => {
machine_st.b = b0;
machine_st.tidy_trail();
machine_st.tidy_pstr_trail();
- machine_st.truncate_stack();
}
}
_ => {
machine_st.b = b0;
machine_st.tidy_trail();
machine_st.tidy_pstr_trail();
- machine_st.truncate_stack();
}
}
_ => {
pub(super) fn unwind_stack(&mut self) {
self.b = self.block;
- self.truncate_stack();
self.fail = true;
}
self.b = b0;
self.tidy_trail();
self.tidy_pstr_trail();
- self.truncate_stack();
}
self.p += 1;
if nb > 0 && self.stack.index_or_frame(b).prelude.b == nb {
self.b = self.stack.index_or_frame(nb).prelude.b;
- self.truncate_stack();
}
}
_ => self.fail = true,