enet/callbacks.c

48 lines
902 B
C
Raw Normal View History

2004-10-20 10:17:51 -07:00
/**
@file callbacks.c
@brief ENet callback functions
*/
#define ENET_BUILDING_LIB 1
#include "enet/enet.h"
2010-06-09 14:16:23 -07:00
static ENetCallbacks callbacks = { malloc, free, abort };
2004-10-20 10:17:51 -07:00
int
enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits)
{
2010-06-09 14:16:23 -07:00
if (version < ENET_VERSION_CREATE (1, 3, 0))
return -1;
2004-10-20 10:17:51 -07:00
if (inits -> malloc != NULL || inits -> free != NULL)
{
if (inits -> malloc == NULL || inits -> free == NULL)
return -1;
callbacks.malloc = inits -> malloc;
callbacks.free = inits -> free;
}
2010-06-09 14:16:23 -07:00
if (inits -> no_memory != NULL)
callbacks.no_memory = inits -> no_memory;
2004-10-20 10:17:51 -07:00
return enet_initialize ();
}
void *
enet_malloc (size_t size)
{
void * memory = callbacks.malloc (size);
if (memory == NULL)
callbacks.no_memory ();
2004-10-20 10:17:51 -07:00
return memory;
}
void
enet_free (void * memory)
{
callbacks.free (memory);
}