Zig 0.17.0-dev (Split by item)

Shortcut keys
?
Show these tips
S
Focus search field
Esc
Clear focus & close tips
U
Jump to source code
↑
Move up in search results
↓
Move down in search results
↵
Go to active search result
This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig standard library. Private Function

getOrAddColumn

Private Function
std.debug.Dwarf.Unwind.VirtualMachine.getOrAddColumn
fn getOrAddColumn(self: *VirtualMachine, gpa: Allocator, register: u8) !*Column

Either retrieves or adds a column for register (non-CFA) in the current row.

Params

File

debug/Dwarf/Unwind/VirtualMachine.zig:81
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
fn getOrAddColumn(self: *VirtualMachine, gpa: Allocator, register: u8) !*Column {
    for (self.rowColumns(&self.current_row)) |*c| {
        if (c.register == register) return c;
    }

    if (self.current_row.columns.len == 0) {
        self.current_row.columns.start = self.columns.items.len;
    } else {
        assert(self.current_row.columns.start + self.current_row.columns.len == self.columns.items.len);
    }
    self.current_row.columns.len += 1;

    const column = try self.columns.addOne(gpa);
    column.* = .{
        .register = register,
        .rule = .default,
    };

    return column;
}