Align downwards
| 267 | |
| 268 | // Align downwards |
| 269 | static inline uintptr_t _mi_align_down(uintptr_t sz, size_t alignment) { |
| 270 | mi_assert_internal(alignment != 0); |
| 271 | uintptr_t mask = alignment - 1; |
| 272 | if ((alignment & mask) == 0) { // power of two? |
| 273 | return (sz & ~mask); |
| 274 | } |
| 275 | else { |
| 276 | return ((sz / alignment) * alignment); |
| 277 | } |
| 278 | } |
| 279 | |
| 280 | // Divide upwards: `s <= _mi_divide_up(s,d)*d < s+d`. |
| 281 | static inline uintptr_t _mi_divide_up(uintptr_t size, size_t divider) { |
no outgoing calls
no test coverage detected