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/ › testing/ › FailingAllocator.zig › alloc
alloc
FailingAllocator.alloc
fn alloc (
ctx : *anyopaque ,
len : usize ,
alignment : mem .Alignment ,
return_address : usize ,
) ?[*]u8
File
Code
fn alloc (
ctx : *anyopaque ,
len : usize ,
alignment : mem .Alignment ,
return_address : usize ,
) ?[*]u8 {
const self : *FailingAllocator = @ptrCast (@alignCast (ctx ));
if (self .alloc_index == self .fail_index ) {
if (!self .has_induced_failure ) {
const st = std .debug .captureCurrentStackTrace (.{ .first_address = return_address }, &self .stack_addresses );
@memset (self .stack_addresses [@min (st .return_addresses .len , self .stack_addresses .len )..], 0 );
self .has_induced_failure = true ;
}
return null ;
}
const result = self .internal_allocator .rawAlloc (len , alignment , return_address ) orelse
return null ;
self .allocated_bytes += len ;
self .allocations += 1 ;
self .alloc_index += 1 ;
return result ;
}