zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 7dbd2a6bb549afa6dc3c95df46f40bf144db23a6 (tree)
parent a20d081129ac6cad1df4afff057bd07e79d1d561
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date:   Tue, 16 Jul 2024 02:22:53 -0400

InternPool: fix `DependencyIterator` iteration

Diffstat:
Msrc/InternPool.zig | 10++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/InternPool.zig b/src/InternPool.zig @@ -283,10 +283,12 @@ pub const DependencyIterator = struct { ip: *const InternPool, next_entry: DepEntry.Index.Optional, pub fn next(it: *DependencyIterator) ?AnalUnit { - const idx = it.next_entry.unwrap() orelse return null; - const entry = it.ip.dep_entries.items[@intFromEnum(idx)]; - it.next_entry = entry.next; - return entry.depender.unwrap().?; + while (true) { + const idx = it.next_entry.unwrap() orelse return null; + const entry = it.ip.dep_entries.items[@intFromEnum(idx)]; + it.next_entry = entry.next; + if (entry.depender.unwrap()) |depender| return depender; + } } };