use heap_loc to refer to 0-arity atom instead of str_loc

This commit is contained in:
Mark Thom
2021-12-07 22:26:46 -07:00
parent 8ba61a1da1
commit 48c1d05151
2 changed files with 9 additions and 6 deletions

View File

@@ -590,7 +590,7 @@ throw(Ball) :-
:- non_counted_backtracking '$iterate_find_all'/4.
'$iterate_find_all'(Template, Goal, _, LhOffset) :-
call(Goal),
'$call'(Goal),
'$copy_to_lh'(LhOffset, Template),
'$fail'.
'$iterate_find_all'(_, _, Solutions, LhOffset) :-

View File

@@ -1,7 +1,6 @@
use crate::arena::*;
use crate::atom_table::*;
use crate::types::*;
use crate::clause_types::*;
use crate::forms::*;
use crate::heap_iter::*;
@@ -3377,11 +3376,15 @@ impl MachineState {
self.heap.push(atom_as_cell!(name, arity));
for i in 0..arity {
self.heap.push(heap_loc_as_cell!(h + i + 1));
}
self.heap.push(heap_loc_as_cell!(h + i + 1));
}
str_loc_as_cell!(h)
};
if arity == 0 {
heap_loc_as_cell!(h)
} else {
str_loc_as_cell!(h)
}
};
(self.bind_fn)(self, r, f_a);
}