summaryrefslogtreecommitdiff
path: root/core/fxcrt/fx_memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fxcrt/fx_memory.h')
-rw-r--r--core/fxcrt/fx_memory.h7
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); }