mirror of
https://github.com/lsalzman/enet
synced 2024-11-21 14:29:05 -07:00
54 lines
911 B
C
54 lines
911 B
C
|
/**
|
||
|
@file callbacks.c
|
||
|
@brief ENet callback functions
|
||
|
*/
|
||
|
#define ENET_BUILDING_LIB 1
|
||
|
#include "enet/enet.h"
|
||
|
|
||
|
static ENetCallbacks callbacks = { malloc, free, rand };
|
||
|
|
||
|
int
|
||
|
enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits)
|
||
|
{
|
||
|
if (version != ENET_VERSION)
|
||
|
return -1;
|
||
|
|
||
|
if (inits -> malloc != NULL || inits -> free != NULL)
|
||
|
{
|
||
|
if (inits -> malloc == NULL || inits -> free == NULL)
|
||
|
return -1;
|
||
|
|
||
|
callbacks.malloc = inits -> malloc;
|
||
|
callbacks.free = inits -> free;
|
||
|
}
|
||
|
|
||
|
if (inits -> rand != NULL)
|
||
|
callbacks.rand = inits -> rand;
|
||
|
|
||
|
return enet_initialize ();
|
||
|
}
|
||
|
|
||
|
void *
|
||
|
enet_malloc (size_t size)
|
||
|
{
|
||
|
void * memory = callbacks.malloc (size);
|
||
|
|
||
|
if (memory == NULL)
|
||
|
abort ();
|
||
|
|
||
|
return memory;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
enet_free (void * memory)
|
||
|
{
|
||
|
callbacks.free (memory);
|
||
|
}
|
||
|
|
||
|
int
|
||
|
enet_rand (void)
|
||
|
{
|
||
|
return callbacks.rand ();
|
||
|
}
|
||
|
|