Explorar el Código

[mem]: Adjust the docs for calc_padding_with_header

flysand7 hace 1 año
padre
commit
3ed2ab6e2c
Se han modificado 2 ficheros con 21 adiciones y 6 borrados
  1. 1 2
      core/mem/alloc.odin
  2. 20 4
      core/mem/mem.odin

+ 1 - 2
core/mem/alloc.odin

@@ -1019,8 +1019,7 @@ Default resize procedure.
 
 
 When allocator does not support resize operation, but supports
 When allocator does not support resize operation, but supports
 `.Alloc_Non_Zeroed` and `.Free`, this procedure is used to implement allocator's
 `.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
 Unlike `default_resize_align` no new memory is being explicitly
 zero-initialized.
 zero-initialized.

+ 20 - 4
core/mem/mem.odin

@@ -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)
 @(require_results)
 calc_padding_with_header :: proc "contextless" (ptr: uintptr, align: uintptr, header_size: int) -> int {
 calc_padding_with_header :: proc "contextless" (ptr: uintptr, align: uintptr, header_size: int) -> int {