diff --git a/include/mimalloc-internal.h b/include/mimalloc-internal.h index ba322feb..2dc7e36a 100644 --- a/include/mimalloc-internal.h +++ b/include/mimalloc-internal.h @@ -574,11 +574,11 @@ static inline bool mi_is_in_same_page(const void* p, const void* q) { static inline uintptr_t mi_rotl(uintptr_t x, uintptr_t shift) { shift %= MI_INTPTR_BITS; - return ((x << shift) | (x >> (MI_INTPTR_BITS - shift))); + return (shift==0 ? x : ((x << shift) | (x >> (MI_INTPTR_BITS - shift)))); } static inline uintptr_t mi_rotr(uintptr_t x, uintptr_t shift) { shift %= MI_INTPTR_BITS; - return ((x >> shift) | (x << (MI_INTPTR_BITS - shift))); + return (shift==0 ? x : ((x >> shift) | (x << (MI_INTPTR_BITS - shift)))); } static inline void* mi_ptr_decode(const void* null, const mi_encoded_t x, const uintptr_t* keys) {