From: Mark Thom Date: Wed, 13 Aug 2025 05:29:31 +0000 (-0700) Subject: small tweak for read_from_term performance (#2668) X-Git-Tag: v0.10.0~26 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=97607d2bcd3a39ead44037311478389b0ea48d65;p=scryer-prolog.git small tweak for read_from_term performance (#2668) --- diff --git a/src/machine/loader.rs b/src/machine/loader.rs index 2b49b50c..4906ce53 100644 --- a/src/machine/loader.rs +++ b/src/machine/loader.rs @@ -1384,10 +1384,16 @@ impl MachineState { stackful_post_order_iter::(&mut self.heap, &mut self.stack, 0); while let Some(addr) = iter.next() { - let addr = unmark_cell_bits!(heap_bound_store( - iter.base_iter.heap, - heap_bound_deref(iter.base_iter.heap, addr), - )); + let addr = unmark_cell_bits!(addr); + + let addr = if addr.is_var() { + unmark_cell_bits!(heap_bound_store( + iter.base_iter.heap, + heap_bound_deref(iter.base_iter.heap, addr) + )) + } else { + addr + }; read_heap_cell!(addr, (HeapCellValueTag::Lis) => {