From 97607d2bcd3a39ead44037311478389b0ea48d65 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Tue, 12 Aug 2025 22:29:31 -0700 Subject: [PATCH] small tweak for read_from_term performance (#2668) --- src/machine/loader.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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) => { -- 2.54.0