fn try_call(&mut self, name: Atom, arity: usize, idx: IndexPtr) -> CallResult {
let compiled_tl_index = idx.p() as usize;
- // println!("calling {}/{}", name.as_str(), arity);
-
match idx.tag() {
IndexPtrTag::DynamicUndefined => {
self.machine_st.fail = true;
fn try_execute(&mut self, name: Atom, arity: usize, idx: IndexPtr) -> CallResult {
let compiled_tl_index = idx.p() as usize;
- // println!("executing {}/{}", name.as_str(), arity);
-
match idx.tag() {
IndexPtrTag::DynamicUndefined => {
self.machine_st.fail = true;
offset += mem::size_of::<HeapCellValue>();
}
- let and_frame = &mut *(new_ptr as *mut AndFrame);
+ let and_frame = self.index_and_frame_mut(e);
and_frame.prelude.num_cells = num_cells;
e
offset += mem::size_of::<HeapCellValue>();
}
- let or_frame = &mut *(new_ptr as *mut OrFrame);
+ let or_frame = self.index_or_frame_mut(b);
or_frame.prelude.num_cells = num_cells;
b