From 140149f05170fe452b9fdd1be935b0bb41871041 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Tue, 4 Oct 2022 10:21:50 -0600 Subject: [PATCH] fix crash in read_term (#1616) --- src/machine/machine_state.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/machine/machine_state.rs b/src/machine/machine_state.rs index 05ff14c8..1d4be14a 100644 --- a/src/machine/machine_state.rs +++ b/src/machine/machine_state.rs @@ -536,7 +536,7 @@ impl MachineState { loop { match self.read(stream, &indices.op_dir) { - Ok(term_write_result) => { + Ok(mut term_write_result) => { let heap_loc = read_heap_cell!(self.heap[term_write_result.heap_loc], (HeapCellValueTag::PStr | HeapCellValueTag::PStrOffset) => { pstr_loc_as_cell!(term_write_result.heap_loc) @@ -568,6 +568,10 @@ impl MachineState { } } + for var in term_write_result.var_dict.values_mut() { + *var = heap_bound_deref(&self.heap, *var); + } + let singleton_var_list = push_var_eq_functors( &mut self.heap, term_write_result.var_dict.iter().filter(|(_, binding)| { -- 2.54.0