Browse Source

Merge pull request #4447 from Kelimion/is_aligned

`mem.is_aligned` is in bytes, not log2 bytes
Jeroen van Rijn 10 months ago
parent
commit
468bd3dfde
1 changed files with 3 additions and 1 deletions
  1. 3 1
      core/mem/mem.odin

+ 3 - 1
core/mem/mem.odin

@@ -461,10 +461,12 @@ Check if a pointer is aligned.
 
 
 This procedure checks whether a pointer `x` is aligned to a boundary specified
 This procedure checks whether a pointer `x` is aligned to a boundary specified
 by `align`, and returns `true` if the pointer is aligned, and false otherwise.
 by `align`, and returns `true` if the pointer is aligned, and false otherwise.
+
+The specified alignment must be a power of 2.
 */
 */
 is_aligned :: proc "contextless" (x: rawptr, align: int) -> bool {
 is_aligned :: proc "contextless" (x: rawptr, align: int) -> bool {
 	p := uintptr(x)
 	p := uintptr(x)
-	return (p & (1<<uintptr(align) - 1)) == 0
+	return (p & (uintptr(align) - 1)) == 0
 }
 }
 
 
 /*
 /*