mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
linker: remove dependency on std.fifo
This commit is contained in:
parent
493265486c
commit
dabae3f9dc
1 changed files with 14 additions and 9 deletions
|
|
@ -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();
|
||||
{
|
||||
var fifo: std.ArrayListUnmanaged(Node.Index) = .empty;
|
||||
defer fifo.deinit(allocator);
|
||||
|
||||
try fifo.writeItem(self.root.?);
|
||||
try fifo.append(allocator, 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 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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue