use crate::atom_table::*;
use crate::parser::ast::*;
+use crate::machine::heap::*;
use crate::machine::machine_errors::CycleSearchResult;
use crate::machine::system_calls::BrentAlgState;
use crate::types::*;
};
}
(HeapCellValueTag::Lis, h) => {
- return if let Some(c) = self.heap[h].as_char() {
+ let value = heap_bound_store(
+ self.heap,
+ heap_bound_deref(self.heap, self.heap[h]),
+ );
+
+ return if let Some(c) = value.as_char() {
Some(PStrIterStep {
iteratee: PStrIteratee::Char(curr_hare, c),
next_hare: h+1,
.get_name_and_arity();
return if name == atom!(".") && arity == 2 {
- if let Some(c) = self.heap[s+1].as_char() {
+ let value = heap_bound_store(
+ self.heap,
+ heap_bound_deref(self.heap, self.heap[s+1]),
+ );
+
+ if let Some(c) = value.as_char() {
Some(PStrIterStep {
iteratee: PStrIteratee::Char(curr_hare, c),
next_hare: s+2,
fn setup_call_cleanup_load() {
load_module_test(
"src/tests/setup_call_cleanup.pl",
- "1+21+31+2>_14313+_143141+_129071+2>41+2>_143141+2>31+2>31+2>4ba"
+ "1+21+31+2>_14219+_142201+_128131+2>41+2>_142201+2>31+2>31+2>4ba"
);
}
run_top_level_test_with_args(
&["src/tests/setup_call_cleanup.pl", "-f", "-g", "halt"],
"",
- "1+21+31+2>_15712+_157131+_143061+2>41+2>_157131+2>31+2>31+2>4ba",
+ "1+21+31+2>_15618+_156191+_142121+2>41+2>_156191+2>31+2>31+2>4ba"
);
}