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 library itself.
Zig › std/ › heap/ › SafeAllocator.zig › deinitLargeAlloc
deinitLargeAlloc
SafeAllocator.deinitLargeAlloc
fn deinitLargeAlloc (s : *SafeAllocator , footer : *AllocFooter , log : bool ) void
File
Code
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 ,
);
}