Skip to content

Commit

Permalink
[mem]: Adjust the docs for calc_padding_with_header
Browse files Browse the repository at this point in the history
  • Loading branch information
flysand7 committed Sep 13, 2024
1 parent e90f5d2 commit 3ed2ab6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
3 changes: 1 addition & 2 deletions core/mem/alloc.odin
Original file line number Diff line number Diff line change
Expand Up @@ -1019,8 +1019,7 @@ Default resize procedure.
When allocator does not support resize operation, but supports
`.Alloc_Non_Zeroed` and `.Free`, this procedure is used to implement allocator's
default behavior on
resize.
default behavior on resize.
Unlike `default_resize_align` no new memory is being explicitly
zero-initialized.
Expand Down
24 changes: 20 additions & 4 deletions core/mem/mem.odin
Original file line number Diff line number Diff line change
Expand Up @@ -644,10 +644,26 @@ align_formula :: proc "contextless" (size, align: int) -> int {
}

/*
Calculate the padding after the pointer with a header.
This procedure returns the next address, following `ptr` and `header_size`
bytes of space that is aligned to a boundary specified by `align`.
Calculate the padding for header preceding aligned data.
This procedure returns the padding, following the specified pointer `ptr` that
will be able to fit in a header of the size `header_size`, immediately
preceding the memory region, aligned on a boundary specified by `align`. See
the following diagram for a visual representation.
header size
|<------>|
+---+--------+------------- - - -
| HEADER | DATA...
+---+--------+------------- - - -
^ ^
|<---------->|
| padding |
ptr aligned ptr
The function takes in `ptr` and `header_size`, as well as the required
alignment for `DATA`. The return value of the function is the padding between
`ptr` and `aligned_ptr` that will be able to fit the header.
*/
@(require_results)
calc_padding_with_header :: proc "contextless" (ptr: uintptr, align: uintptr, header_size: int) -> int {
Expand Down

0 comments on commit 3ed2ab6

Please sign in to comment.