From: Mark Thom Date: Sat, 9 Apr 2022 18:15:46 +0000 (-0600) Subject: unmark dereferenced cells in term_variables/2 (#1412) X-Git-Tag: v0.9.1~66 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=0876d4688047e413e1ebab058e52c86e69a5227e;p=scryer-prolog.git unmark dereferenced cells in term_variables/2 (#1412) --- diff --git a/src/machine/machine_state_impl.rs b/src/machine/machine_state_impl.rs index 2686aef4..751b88bf 100644 --- a/src/machine/machine_state_impl.rs +++ b/src/machine/machine_state_impl.rs @@ -2056,8 +2056,10 @@ impl MachineState { while let Some(value) = iter.next() { if value.get_forwarding_bit() { - let value = unmark_cell_bits!(value); - let value = heap_bound_store(iter.heap, heap_bound_deref(iter.heap, value)); + let value = unmark_cell_bits!(heap_bound_store( + iter.heap, + heap_bound_deref(iter.heap, value), + )); if value.is_compound() { return true; diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index 6a572b8f..d9ff4e32 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -4911,10 +4911,10 @@ impl Machine { let value = unmark_cell_bits!(value); if value.is_var() { - let value = heap_bound_store( + let value = unmark_cell_bits!(heap_bound_store( iter.heap, heap_bound_deref(iter.heap, value) - ); + )); if value.is_var() { seen_set.insert(value);