Minor cleanup

This commit is contained in:
Nils O. Selåsdal
2026-04-21 23:01:22 +02:00
parent d1a45cf8e0
commit d58e24f6a9
2 changed files with 7 additions and 9 deletions
+6 -5
View File
@@ -5,9 +5,10 @@
#include <assert.h>
//Free memory is reused to build a linked list of slots
typedef struct UCSlot UCSlot;
struct UCSlot {
UCSlot *next;
typedef union UCSlot UCSlot;
union UCSlot {
UCSlot *next; // next free block (when not allocated)
uint8_t data[0]; // data when allocated
};
typedef struct UCSlotArena UCSlotArena;
@@ -71,7 +72,7 @@ static inline void *uc_slot_alloc(UCSlotArena *arena)
#endif
}
return slot;
return &slot->data[0];
}
/**
* Free a slot.
@@ -84,7 +85,7 @@ static inline void uc_slot_free(UCSlotArena *arena, void *memory)
#ifdef DEBUG
for (const UCSlot *slot = arena->free_list ; slot = slot->next) {
if (slot == mem) {
assert("Double free detected");
assert(0 && "Double free detected");
}
}
#endif
+1 -4
View File
@@ -41,7 +41,7 @@ void uc_pool_init(UCPool *pool, void *buffer, size_t buffer_size, size_t block_s
p->next = next;
p = next;
}
((UCPoolBlock *)p)->next = NULL; // last element
p->next = NULL; // last element
pool->free_list = (UCPoolBlock *)first_addr;
}
@@ -65,8 +65,6 @@ void *uc_pool_alloc(UCPool *pool)
#endif
return block->data;
}
#include <stdio.h>
void uc_pool_free(UCPool *pool, void *p)
{
if (p == NULL) {
@@ -92,7 +90,6 @@ void uc_pool_free(UCPool *pool, void *p)
pool->free_list = p;
}
void uc_pool_reset(UCPool *pool)
{
if (pool->capacity == 0)