reference partial strings properly in read_term (#1271)
This commit is contained in:
@@ -495,9 +495,18 @@ impl MachineState {
|
|||||||
loop {
|
loop {
|
||||||
match self.read(stream, &indices.op_dir) {
|
match self.read(stream, &indices.op_dir) {
|
||||||
Ok(term_write_result) => {
|
Ok(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)
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
heap_loc_as_cell!(term_write_result.heap_loc)
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
let term = self.registers[2];
|
let term = self.registers[2];
|
||||||
unify_fn!(*self, heap_loc_as_cell!(term_write_result.heap_loc), term);
|
unify_fn!(*self, heap_loc, term);
|
||||||
let term = heap_loc_as_cell!(term_write_result.heap_loc);
|
let term = heap_loc;
|
||||||
|
|
||||||
if self.fail {
|
if self.fail {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
|||||||
Reference in New Issue
Block a user