infix-calculator/lib/memory_pool.c

21 lines
386 B
C

/*
* Copyright (c) Camden Dixie O'Brien
* SPDX-License-Identifier: AGPL-3.0-only
*/
#include "memory_pool.h"
#include <stddef.h>
void init_memory_pool(memory_pool_t *pool)
{
pool->free_pointer = &pool->buffer[0];
}
expression_t *allocate_expression(memory_pool_t *pool)
{
if (pool->free_pointer > pool->buffer + MEMORY_POOL_SIZE)
return NULL;
return pool->free_pointer++;
}