diff --git a/engine/breeze/utils/heap.c b/engine/breeze/utils/heap.c index 718a7f0..e8f7cb7 100644 --- a/engine/breeze/utils/heap.c +++ b/engine/breeze/utils/heap.c @@ -2,28 +2,28 @@ #include "../core/memory.h" -typedef struct BzHeap { +typedef struct BzHeapHead { i32 capacity; i32 size; i32 stride; i32 weightOffset; -} BzHeap; +} BzHeapHead; -#define HEAP_HEAD(heap) (((BzHeap *)heap) - 1) +#define HEAP_HEAD(heap) (((BzHeapHead *)heap) - 1) #define HEAP_LEFT(i) ((i32)(i * 2 + 1)) #define HEAP_RIGHT(i) ((i32)(i * 2 + 2)) #define HEAP_PARENT(i) ((i32) ((i - 1) / 2)) -static void heapSiftUp(BzHeap *head, void *heap); -static void heapSiftDown(BzHeap *head, void *heap); +static void heapSiftUp(BzHeapHead *head, void *heap); +static void heapSiftDown(BzHeapHead *head, void *heap); void *_bzHeapNew(i32 startCapacity, i32 stride, i32 weightOffset) { - i32 numBytes = sizeof(BzHeap) + (startCapacity + 1) * stride; - BzHeap *heap = bzAlloc(numBytes); - heap[0] = (BzHeap) { + i32 numBytes = sizeof(BzHeapHead) + (startCapacity + 1) * stride; + BzHeapHead *heap = bzAlloc(numBytes); + heap[0] = (BzHeapHead) { .capacity=startCapacity, .size=0, .stride=stride, @@ -37,7 +37,7 @@ void _bzHeapFree(void *heap) { bzFree(HEAP_HEAD(heap)); } void _bzHeapClear(void *heap) { - BzHeap *head = HEAP_HEAD(heap); + BzHeapHead *head = HEAP_HEAD(heap); head->size = 0; } @@ -49,7 +49,7 @@ bool _bzHeapIsEmpty(void *heap) { } i32 _bzHeapPop(void *heap) { - BzHeap *head = HEAP_HEAD(heap); + BzHeapHead *head = HEAP_HEAD(heap); BZ_ASSERT(head->size > 0); // Move first to index capacity (for output) @@ -65,7 +65,7 @@ i32 _bzHeapPop(void *heap) { return head->capacity; } void _bzHeapPush(void *heap) { - BzHeap *head = HEAP_HEAD(heap); + BzHeapHead *head = HEAP_HEAD(heap); BZ_ASSERT(head->size + 1 < head->capacity); void *item = ((u8 *)heap) + head->capacity * head->stride; @@ -78,7 +78,7 @@ i32 _bzHeapPushTmpIdx(void *heap) { return HEAP_HEAD(heap)->capacity; } -static void heapSwap(BzHeap *head, void *heap, i32 aIdx, i32 bIdx) { +static void heapSwap(BzHeapHead *head, void *heap, i32 aIdx, i32 bIdx) { u8 *aItem = ((u8 *)heap) + aIdx * head->stride; u8 *bItem = ((u8 *)heap) + bIdx * head->stride; @@ -88,12 +88,12 @@ static void heapSwap(BzHeap *head, void *heap, i32 aIdx, i32 bIdx) { bzMemMove(aItem, bItem, head->stride); bzMemMove(bItem, tmp, head->stride); } -static int heapCmp(BzHeap *head, void *heap, i32 lhs, i32 rhs) { +static int heapCmp(BzHeapHead *head, void *heap, i32 lhs, i32 rhs) { int *aWeight = (i32 *) (((u8 *)heap) + lhs * head->stride + head->weightOffset); int *bWeight = (i32 *) (((u8 *)heap) + rhs * head->stride + head->weightOffset); return (*aWeight) - (*bWeight); } -static void heapSiftUp(BzHeap *head, void *heap) { +static void heapSiftUp(BzHeapHead *head, void *heap) { i32 idx = head->size - 1; while (idx >= 0) { @@ -105,7 +105,7 @@ static void heapSiftUp(BzHeap *head, void *heap) { } } -static void heapSiftDown(BzHeap *head, void *heap) { +static void heapSiftDown(BzHeapHead *head, void *heap) { i32 idx = 0; while (idx < head->size) {