Commit dabae3f9dc

Andrew Kelley <andrew@ziglang.org>
2025-08-02 06:44:56
linker: remove dependency on std.fifo
1 parent 4932654
Changed files (1)
src
link
MachO
dyld_info
src/link/MachO/dyld_info/Trie.zig
@@ -138,18 +138,23 @@ fn finalize(self: *Trie, allocator: Allocator) !void {
     defer ordered_nodes.deinit();
     try ordered_nodes.ensureTotalCapacityPrecise(self.nodes.items(.is_terminal).len);
 
-    var fifo = std.fifo.LinearFifo(Node.Index, .Dynamic).init(allocator);
-    defer fifo.deinit();
-
-    try fifo.writeItem(self.root.?);
-
-    while (fifo.readItem()) |next_index| {
-        const edges = &self.nodes.items(.edges)[next_index];
-        for (edges.items) |edge_index| {
-            const edge = self.edges.items[edge_index];
-            try fifo.writeItem(edge.node);
+    {
+        var fifo: std.ArrayListUnmanaged(Node.Index) = .empty;
+        defer fifo.deinit(allocator);
+
+        try fifo.append(allocator, self.root.?);
+
+        var i: usize = 0;
+        while (i < fifo.items.len) {
+            const next_index = fifo.items[i];
+            i += 1;
+            const edges = &self.nodes.items(.edges)[next_index];
+            for (edges.items) |edge_index| {
+                const edge = self.edges.items[edge_index];
+                try fifo.append(allocator, edge.node);
+            }
+            ordered_nodes.appendAssumeCapacity(next_index);
         }
-        ordered_nodes.appendAssumeCapacity(next_index);
     }
 
     var more: bool = true;