authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-07-16 02:22:53-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-07-16 02:24:16-04:00
log7dbd2a6bb549afa6dc3c95df46f40bf144db23a6
treee69d14539d69b8a22908316c418b8cba4d516caf
parenta20d081129ac6cad1df4afff057bd07e79d1d561

InternPool: fix `DependencyIterator` iteration


1 files changed, 6 insertions(+), 4 deletions(-)

src/InternPool.zig+6-4
...@@ -283,10 +283,12 @@ pub const DependencyIterator = struct {...@@ -283,10 +283,12 @@ pub const DependencyIterator = struct {
283 ip: *const InternPool,283 ip: *const InternPool,
284 next_entry: DepEntry.Index.Optional,284 next_entry: DepEntry.Index.Optional,
285 pub fn next(it: *DependencyIterator) ?AnalUnit {285 pub fn next(it: *DependencyIterator) ?AnalUnit {
286 const idx = it.next_entry.unwrap() orelse return null;286 while (true) {
287 const entry = it.ip.dep_entries.items[@intFromEnum(idx)];287 const idx = it.next_entry.unwrap() orelse return null;
288 it.next_entry = entry.next;288 const entry = it.ip.dep_entries.items[@intFromEnum(idx)];
289 return entry.depender.unwrap().?;289 it.next_entry = entry.next;
290 if (entry.depender.unwrap()) |depender| return depender;
291 }
290 }292 }
291};293};
292294