aboutsummaryrefslogtreecommitdiff
path: root/src/common_memory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common_memory.cpp')
-rw-r--r--src/common_memory.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/src/common_memory.cpp b/src/common_memory.cpp
index cdf2281fe..4c77521e1 100644
--- a/src/common_memory.cpp
+++ b/src/common_memory.cpp
@@ -14,25 +14,16 @@ gb_internal gb_inline U const &bit_cast(V const &v) { return reinterpret_cast<U
gb_internal gb_inline i64 align_formula(i64 size, i64 align) {
- if (align > 0) {
- i64 result = size + align-1;
- return result - result%align;
- }
- return size;
+ i64 result = size + align-1;
+ return result - (i64)((u64)result%(u64)align);
}
gb_internal gb_inline isize align_formula_isize(isize size, isize align) {
- if (align > 0) {
- isize result = size + align-1;
- return result - result%align;
- }
- return size;
+ isize result = size + align-1;
+ return result - (isize)((usize)result%(usize)align);
}
gb_internal gb_inline void *align_formula_ptr(void *ptr, isize align) {
- if (align > 0) {
- uintptr result = (cast(uintptr)ptr) + align-1;
- return (void *)(result - result%align);
- }
- return ptr;
+ uintptr result = (cast(uintptr)ptr) + align-1;
+ return (void *)(result - result%align);
}