diff --git a/src/util/u_math.h b/src/util/u_math.h index 4c5dac1e251..374d32bd338 100644 --- a/src/util/u_math.h +++ b/src/util/u_math.h @@ -49,6 +49,7 @@ #include "u_endian.h" /* for UTIL_ARCH_BIG_ENDIAN */ #include "util/detect_cc.h" #include "util/detect_arch.h" +#include "util/macros.h" #ifdef __HAIKU__ #include @@ -656,7 +657,7 @@ static inline uintptr_t ALIGN(uintptr_t value, int32_t alignment) { assert(util_is_power_of_two_nonzero(alignment)); - return (((value) + (alignment) - 1) & ~((alignment) - 1)); + return ALIGN_POT(value, alignment); } /** @@ -693,13 +694,15 @@ ROUND_DOWN_TO(uint64_t value, uint32_t alignment) static inline int align(int value, int alignment) { - return (value + alignment - 1) & ~(alignment - 1); + assert(IS_POT(alignment)); + return ALIGN_POT(value, alignment); } static inline uint64_t align64(uint64_t value, uint64_t alignment) { - return (value + alignment - 1) & ~(alignment - 1); + assert(IS_POT(alignment)); + return ALIGN_POT(value, (uint64_t)alignment); } /**