authorgravatar for jgollenz@outlook.comJonas Gollenz <jgollenz@outlook.com> 2022-08-24 01:35:45+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-08-24 17:18:29-04:00
log07afd5bdbaef991a177e2df03af0502fce5dde23
treed5299211e1c06b650b6518270d562de722f0da22
parentd8e22fcb208e2b52b272fb2c988f2123773b23e8

docs: remove confusion about align[For|Back]ward


1 files changed, 5 insertions(+), 5 deletions(-)

lib/std/mem.zig+5-5
...@@ -3252,13 +3252,13 @@ test "sliceAsBytes preserves pointer attributes" {...@@ -3252,13 +3252,13 @@ test "sliceAsBytes preserves pointer attributes" {
3252 try testing.expectEqual(in.alignment, out.alignment);3252 try testing.expectEqual(in.alignment, out.alignment);
3253}3253}
32543254
3255/// Round an address up to the nearest aligned address3255/// Round an address up to the next (or current) aligned address.
3256/// The alignment must be a power of 2 and greater than 0.3256/// The alignment must be a power of 2 and greater than 0.
3257pub fn alignForward(addr: usize, alignment: usize) usize {3257pub fn alignForward(addr: usize, alignment: usize) usize {
3258 return alignForwardGeneric(usize, addr, alignment);3258 return alignForwardGeneric(usize, addr, alignment);
3259}3259}
32603260
3261/// Round an address up to the nearest aligned address3261/// Round an address up to the next (or current) aligned address.
3262/// The alignment must be a power of 2 and greater than 0.3262/// The alignment must be a power of 2 and greater than 0.
3263pub fn alignForwardGeneric(comptime T: type, addr: T, alignment: T) T {3263pub fn alignForwardGeneric(comptime T: type, addr: T, alignment: T) T {
3264 return alignBackwardGeneric(T, addr + (alignment - 1), alignment);3264 return alignBackwardGeneric(T, addr + (alignment - 1), alignment);
...@@ -3290,7 +3290,7 @@ test "alignForward" {...@@ -3290,7 +3290,7 @@ test "alignForward" {
3290 try testing.expect(alignForward(17, 8) == 24);3290 try testing.expect(alignForward(17, 8) == 24);
3291}3291}
32923292
3293/// Round an address up to the previous aligned address3293/// Round an address down to the previous (or current) aligned address.
3294/// Unlike `alignBackward`, `alignment` can be any positive number, not just a power of 2.3294/// Unlike `alignBackward`, `alignment` can be any positive number, not just a power of 2.
3295pub fn alignBackwardAnyAlign(i: usize, alignment: usize) usize {3295pub fn alignBackwardAnyAlign(i: usize, alignment: usize) usize {
3296 if (@popCount(alignment) == 1)3296 if (@popCount(alignment) == 1)
...@@ -3299,13 +3299,13 @@ pub fn alignBackwardAnyAlign(i: usize, alignment: usize) usize {...@@ -3299,13 +3299,13 @@ pub fn alignBackwardAnyAlign(i: usize, alignment: usize) usize {
3299 return i - @mod(i, alignment);3299 return i - @mod(i, alignment);
3300}3300}
33013301
3302/// Round an address up to the previous aligned address3302/// Round an address down to the previous (or current) aligned address.
3303/// The alignment must be a power of 2 and greater than 0.3303/// The alignment must be a power of 2 and greater than 0.
3304pub fn alignBackward(addr: usize, alignment: usize) usize {3304pub fn alignBackward(addr: usize, alignment: usize) usize {
3305 return alignBackwardGeneric(usize, addr, alignment);3305 return alignBackwardGeneric(usize, addr, alignment);
3306}3306}
33073307
3308/// Round an address up to the previous aligned address3308/// Round an address down to the previous (or current) aligned address.
3309/// The alignment must be a power of 2 and greater than 0.3309/// The alignment must be a power of 2 and greater than 0.
3310pub fn alignBackwardGeneric(comptime T: type, addr: T, alignment: T) T {3310pub fn alignBackwardGeneric(comptime T: type, addr: T, alignment: T) T {
3311 assert(@popCount(alignment) == 1);3311 assert(@popCount(alignment) == 1);