Finished memory management of multiple marios

This commit is contained in:
jaburns
2020-10-28 13:51:03 -06:00
parent 59ba053a70
commit 9daf010774
5 changed files with 110 additions and 36 deletions
+37
View File
@@ -0,0 +1,37 @@
#include "obj_pool.h"
#include <stdlib.h>
uint32_t obj_pool_alloc_index( struct ObjPool *pool, size_t size )
{
for( uint32_t i = 0; i < pool->size; ++i )
{
if( pool->objects[i] == NULL )
{
pool->objects[i] = malloc( size );
return i;
}
}
uint32_t i = pool->size;
pool->size++;
pool->objects = realloc( pool->objects, pool->size * sizeof( void * ));
pool->objects[i] = malloc( size );
return i;
}
void obj_pool_free_index( struct ObjPool *pool, uint32_t index )
{
free( pool->objects[index] );
pool->objects[index] = NULL;
}
void obj_pool_free_all( struct ObjPool *pool )
{
for( uint32_t i = 0; i < pool->size; ++i )
free( pool->objects[i] );
free( pool->objects );
pool->size = 0;
pool->objects = NULL;
}