gwnavruntime/database/stitchdatamanagerutils.h Source File
Go to the documentation of this file.
14 class MemoryManagerUtils
18 static bool IsMemoryAlignedForClass(T* memory)
20 return IsMemoryAlignedForClassFromClassSize<(KyUInt32)sizeof(T)>((
char*)memory);
24 static KyUInt32 GetPaddingForMemory(
char* memory)
26 return GetPaddingForMemoryFromClassSize<(KyUInt32)sizeof(T)>(memory);
32 return GetPaddingForBytesCountFromClassSize<(KyUInt32)sizeof(T)>((UPInt)currentBytesCount);
35 template<KyUInt32 sizeOfClass>
36 static inline bool IsMemoryAlignedForClassFromClassSize(
char* memory)
38 return GetPaddingForMemoryFromClassSize<sizeOfClass>(memory) == 0;
41 template<KyUInt32 sizeOfClass>
42 static inline KyUInt32 GetPaddingForMemoryFromClassSize(
char* memory)
44 return GetPaddingForBytesCountFromClassSize<sizeOfClass>((UPInt)memory);
47 template<KyUInt32 sizeOfClass>
48 static inline KyUInt32 GetPaddingForBytesCountFromClassSize(UPInt currentBytesCount)
50 if ((sizeOfClass & 0x1) != 0)
53 else if ((sizeOfClass & 0x2) != 0)
56 return (
KyUInt32)(currentBytesCount & 0x1);
59 #ifndef KY_64BIT_POINTERS
62 return (
KyUInt32)((4 - (currentBytesCount & 0x3)) & 0x3);
64 if ((sizeOfClass & 0x4) != 0)
66 return (
KyUInt32)((4 - (currentBytesCount & 0x3)) & 0x3);
69 return (
KyUInt32)((8 - (currentBytesCount & 0x7)) & 0x7);
std::uint32_t KyUInt32
uint32_t
Definition: types.h:29
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17