]> Repositorios git - scryer-prolog.git/commitdiff
Fix marking of partial string tail in iteration
authorbakaq <[email protected]>
Tue, 14 Oct 2025 19:19:43 +0000 (16:19 -0300)
committerbakaq <[email protected]>
Tue, 14 Oct 2025 19:59:50 +0000 (16:59 -0300)
src/heap_iter.rs

index 365d9ca350eb5787f1fc0063340b851bf002ffca..ceefe4a9a68bb10f976739789d0cb7343d408660 100644 (file)
@@ -118,8 +118,8 @@ impl<'a> EagerStackfulPreOrderHeapIter<'a> {
                 (HeapCellValueTag::PStrLoc, h) => {
                     let tail_idx = self.heap.scan_slice_to_str(h).tail_idx;
 
-                    self.heap[tail_idx].set_mark_bit(self.mark_phase);
                     self.iter_stack.push(self.heap[tail_idx]);
+                    self.heap[tail_idx].set_mark_bit(self.mark_phase);
                 }
                 _ => {
                 }