repair cyclic PStrLoc handling in heap_print.rs
This commit is contained in:
@@ -879,7 +879,12 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
} else {
|
} else {
|
||||||
debug_assert!(cell.is_ref());
|
debug_assert!(cell.is_ref());
|
||||||
|
|
||||||
let h = cell.get_value() as usize;
|
let h = if cell.get_tag() == HeapCellValueTag::PStrLoc {
|
||||||
|
self.iter.focus().value()
|
||||||
|
} else {
|
||||||
|
cell.get_value()
|
||||||
|
} as usize;
|
||||||
|
|
||||||
self.iter.push_stack(IterStackLoc::iterable_loc(
|
self.iter.push_stack(IterStackLoc::iterable_loc(
|
||||||
h,
|
h,
|
||||||
HeapOrStackTag::Heap,
|
HeapOrStackTag::Heap,
|
||||||
@@ -909,7 +914,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
orig_cell = cell;
|
orig_cell = cell;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -731,10 +731,6 @@ impl MachineState {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
for var in term_write_result.var_dict.values_mut() {
|
|
||||||
*var = heap_bound_deref(&self.heap, *var);
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut var_list = Vec::with_capacity(singleton_var_set.len());
|
let mut var_list = Vec::with_capacity(singleton_var_set.len());
|
||||||
|
|
||||||
for (var_name, addr) in term_write_result.var_dict {
|
for (var_name, addr) in term_write_result.var_dict {
|
||||||
|
|||||||
Reference in New Issue
Block a user