mirror of
https://github.com/ToyB-Chan/minimal-heap.git
synced 2026-07-13 21:51:16 +02:00
more option validation
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user