|
|
@ -15,8 +15,7 @@ By Kevin 'Assyrianic' Yonan @ https://github.com/assyrianic |
|
|
|
The memory pool encapsulates two public structs: |
|
|
|
* `freeList` which is an abstracted doubly linked list consisting of a `head` and `tail` pointer to `MemNode` |
|
|
|
* A `len` that tracks the amount of nodes the linked list holds. |
|
|
|
* `maxNodes` which is used for auto-defragging (explained below), |
|
|
|
* and `autoDefrag` which controls whether auto-defragging will execute or not. |
|
|
|
* an array of doubly linked lists that store fixed size blocks called `buckets`. |
|
|
|
```c |
|
|
|
typedef struct MemNode { |
|
|
|
size_t size; |
|
|
@ -25,7 +24,7 @@ The memory pool encapsulates two public structs: |
|
|
|
|
|
|
|
typedef struct AllocList { |
|
|
|
MemNode *head, *tail; |
|
|
|
size_t len, maxNodes; |
|
|
|
size_t len; |
|
|
|
} AllocList; |
|
|
|
``` |
|
|
|
|
|
|
|