Zig 0.17.0-dev (Split by item) 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.
std › heap › SafeAllocator › deinitLargeAlloc Private Function deinitLargeAlloc Doc Source Private Function std.heap.SafeAllocator.deinitLargeAlloc
fn deinitLargeAlloc (s : *SafeAllocator , footer : *AllocFooter , log : bool ) void Params File heap/SafeAllocator.zig: 729
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746 fn deinitLargeAlloc (s : *SafeAllocator , footer : *AllocFooter , log : bool ) void {
const modify = footer .modify .storedXor (&footer .modify );
if (modify != .none or footer .checksum ^ s .canary != footer .actualChecksum (s )) {
panic ("corrupted footer metadata at *{x}" , .{@intFromPtr (&footer )});
}
const memory = footer .userMemory ();
if (log ) scoped_log .err ("leaked {f} allocated at {f}" , .{ FormatMemory {
.memory = memory ,
.alignment = footer .userAlign (),
}, formatStackTrace (footer .allocTrace (s )) });
s .backing .rawFree (
memory .ptr [0 ..AllocFooter .allocLenLarge (s , memory .len )],
AllocFooter .allocAlign (footer .userAlign ()),
0 ,
);
}