To match how we usually do this current allocation code.
(Also, make it accept a NULL pointer, also in order to match behaviour
in the rest of our codebase)
return p;
}
-void mempool_free_tile(struct mempool *mp, void *p) {
- * (void**) p = mp->freelist;
+void* mempool_free_tile(struct mempool *mp, void *p) {
+ assert(mp);
+
+ if (!p)
+ return NULL;
+
+ *(void**) p = mp->freelist;
mp->freelist = p;
+
+ return NULL;
}
void mempool_drop(struct mempool *mp) {
void* mempool_alloc_tile(struct mempool *mp);
void* mempool_alloc0_tile(struct mempool *mp);
-void mempool_free_tile(struct mempool *mp, void *p);
+void* mempool_free_tile(struct mempool *mp, void *p);
#define DEFINE_MEMPOOL(pool_name, tile_type, alloc_at_least) \
static struct mempool pool_name = { \