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 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; } MIHP_AllocationCustomMetadata;
typedef struct _MIHP_HeapSegmentHeader typedef struct _MIHP_HeapSegmentHeader

View File

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