diff options
Diffstat (limited to 'core/fxcrt/fx_memory.h')
-rw-r--r-- | core/fxcrt/fx_memory.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/core/fxcrt/fx_memory.h b/core/fxcrt/fx_memory.h index 707e084211..b39911269b 100644 --- a/core/fxcrt/fx_memory.h +++ b/core/fxcrt/fx_memory.h @@ -130,6 +130,13 @@ inline void FX_Free(void* ptr) { template <typename T, size_t N> char (&ArraySizeHelper(T (&array)[N]))[N]; +// Round up to the power-of-two boundary N. +template <int N, typename T> +inline T FxAlignToBoundary(T size) { + static_assert(N > 0 && (N & (N - 1)) == 0, "Not non-zero power of two"); + return (size + N - 1) & ~(N - 1); +} + // Used with std::unique_ptr to FX_Free raw memory. struct FxFreeDeleter { inline void operator()(void* ptr) const { FX_Free(ptr); } |