From 1ab14ea5193597f6c43e25623bfb203acdc0bd6b Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 7 Oct 2023 18:48:49 -0600 Subject: [PATCH] mark both components of a PStrLoc (#2082) --- src/heap_iter.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/heap_iter.rs b/src/heap_iter.rs index e144ae3e..ef5e4ac5 100644 --- a/src/heap_iter.rs +++ b/src/heap_iter.rs @@ -80,9 +80,9 @@ impl<'a> EagerStackfulPreOrderHeapIter<'a> { } (HeapCellValueTag::AttrVar | HeapCellValueTag::Var, h) => { let var_value = self.heap[h]; + self.heap[h].set_mark_bit(self.mark_phase); if !(var_value.is_var() && var_value.get_value() as usize == h) { - self.heap[h].set_mark_bit(self.mark_phase); self.iter_stack.push(var_value); continue; } @@ -99,8 +99,12 @@ impl<'a> EagerStackfulPreOrderHeapIter<'a> { continue; } + let value = self.heap[h+1]; + self.heap[h].set_mark_bit(self.mark_phase); - self.iter_stack.push(self.heap[h+1]); + self.heap[h+1].set_mark_bit(self.mark_phase); + + self.iter_stack.push(value); } _ => { } -- 2.54.0