more option validation

This commit is contained in:
2026-06-08 19:28:38 +02:00
parent 7095e2abc4
commit 6ea22a16e3
2 changed files with 9 additions and 3 deletions

View File

@@ -44,10 +44,10 @@ void MIHP_PlatformOnHeapCorruptionDetected(struct _MIHP_HeapCorruptionInfo info)
typedef struct _MIHP_HeapConfig typedef struct _MIHP_HeapConfig
{ {
size_t AllocationAlignment; size_t AllocationAlignment; // Must be power of two and at least sizeof(size_t)
size_t MinimalMemoryAreaSize; size_t MinimalMemoryAreaSize; // Must be a multiple of AllocationAlingment
size_t MaximalMemoryAreaSize; size_t MaximalMemoryAreaSize; // Must be a multiple of AllocationAlingment
char AllocationInitialValue; char AllocationInitialValue;
} MIHP_HeapConfig; } MIHP_HeapConfig;

View File

@@ -13,6 +13,12 @@ MIHP_Heap* MIHP_CreateHeap(MIHP_HeapConfig config)
if (!MIHP_IS_PO2(config.AllocationAlignment)) if (!MIHP_IS_PO2(config.AllocationAlignment))
return NULL; return NULL;
if (config.MinimalMemoryAreaSize % config.AllocationAlignment != 0)
return NULL;
if (config.MaximalMemoryAreaSize % config.AllocationAlignment != 0)
return NULL;
MIHP_Heap* heap = (MIHP_Heap*)MIHP_PlatformRequestMemory(sizeof(MIHP_Heap)); MIHP_Heap* heap = (MIHP_Heap*)MIHP_PlatformRequestMemory(sizeof(MIHP_Heap));
if (heap == NULL) if (heap == NULL)
return NULL; return NULL;