metadata union

This commit is contained in:
2026-06-12 23:45:45 +02:00
parent efea439a56
commit 29ddfe9991
2 changed files with 9 additions and 3 deletions

View File

@@ -97,7 +97,13 @@ typedef struct _MIHP_HeapMemoryAreaHeader
typedef struct _MIHP_AllocationCustomMetadata
{
uint8_t data[16];
union
{
uint8_t AsU8 [sizeof(size_t) * 2];
uint16_t AsU16 [sizeof(size_t) * 1];
uint32_t AsU32 [sizeof(size_t) / 2];
uint64_t AsU64 [sizeof(size_t) / 4];
};
} MIHP_AllocationCustomMetadata;
typedef struct _MIHP_HeapSegmentHeader

View File

@@ -62,7 +62,7 @@ int main()
MIHP_AllocationCustomMetadata metadata = { 0 };
void* ptr = GetThisAddress();
memcpy(&metadata.data, &ptr, sizeof(void*));
memcpy(&metadata.AsU8, &ptr, sizeof(void*));
MIHP_SetPointerCustomMetadata(&myHeap, myptrs[i], metadata);
MIHP_ValidateHeap(&myHeap);
@@ -71,7 +71,7 @@ int main()
MIHP_GetPointerCustomMetadata(&myHeap, myptrs[i], &outMetadata);
void* returnPtr;
memcpy(&returnPtr, &outMetadata.data, sizeof(void*));
memcpy(&returnPtr, &outMetadata.AsU8, sizeof(void*));
MIHP_ASSERT(ptr == returnPtr);
#endif