From: Mark Thom Date: Fri, 13 Jan 2023 06:46:57 +0000 (-0700) Subject: tighten deallocate truncation of stack (#1686) X-Git-Tag: v0.9.2~237 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=3a4aa2a54127e2b633aadabf2f75930e6d0f1dbf;p=scryer-prolog.git tighten deallocate truncation of stack (#1686) --- diff --git a/src/machine/machine_state_impl.rs b/src/machine/machine_state_impl.rs index 00e17649..a77fda72 100644 --- a/src/machine/machine_state_impl.rs +++ b/src/machine/machine_state_impl.rs @@ -2784,8 +2784,11 @@ impl MachineState { self.cp = frame.prelude.cp; self.e = frame.prelude.e; - if e > self.b { - self.stack.truncate(e); + if self.e > self.b { + let frame = self.stack.index_and_frame(self.e); + let size = AndFrame::size_of(frame.prelude.univ_prelude.num_cells); + + self.stack.truncate(self.e + size); } self.p += 1;