From: Mark Thom Date: Sun, 3 Mar 2019 06:13:54 +0000 (-0700) Subject: eliminate redundant set_p function X-Git-Tag: v0.8.110~218 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=8ca1bb5688947829098b23a077e939258c459fea;p=scryer-prolog.git eliminate redundant set_p function --- diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index bd1ce504..48df5bff 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -182,16 +182,6 @@ impl MachineState { self.block } - #[inline] - pub(super) - fn set_p(&mut self) { - if self.last_call { - self.p = CodePtr::Local(self.cp); - } else { - self.p += 1; - } - } - fn copy_findall_solution(&mut self, lh_offset: usize, copy_target: Addr) -> usize { let threshold = self.lifted_heap.len() - lh_offset; @@ -529,9 +519,7 @@ impl MachineState { if let Some(r) = dest.as_var() { self.bind(r, addr.clone()); - self.set_p(); - - return Ok(()); + return return_from_clause!(self.last_call, self); } } else { sgc_policy.push_cont_pt(addr, b_cutoff, prev_b); @@ -926,6 +914,6 @@ impl MachineState { } }; - Ok(self.set_p()) + return_from_clause!(self.last_call, self) } }