From 4a6ffb6b9ee24d0357af2e09e116ca32fd7faf76 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Wed, 6 Apr 2022 22:53:48 -0600 Subject: [PATCH] detect immediately cyclic lists (#1384) --- src/heap_iter.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/heap_iter.rs b/src/heap_iter.rs index 21a65dbd..8c40d56a 100644 --- a/src/heap_iter.rs +++ b/src/heap_iter.rs @@ -167,7 +167,12 @@ impl<'a> StackfulPreOrderHeapIter<'a> { self.push_if_unmarked(vh); self.stack.push(IterStackLoc::iterable_heap_loc(vh + 1)); - forward_if_referent_marked(&mut self.heap, vh + 1); + + if self.heap[vh + 1].get_mark_bit() { + self.heap[vh + 1].set_forwarding_bit(true); + } else { + forward_if_referent_marked(&mut self.heap, vh + 1); + } self.stack.push(IterStackLoc::mark_heap_loc(vh)); forward_if_referent_marked(&mut self.heap, vh); -- 2.54.0