diff options
author | eihrul <eihrul> | 2004-10-20 17:17:51 +0000 |
---|---|---|
committer | eihrul <eihrul> | 2004-10-20 17:17:51 +0000 |
commit | 3010e46b47c36a25f44c80b31daaf887ab1d8de5 (patch) | |
tree | f64bced38da8159f0eb70a09eb8863a417d59ef5 /callbacks.c | |
download | enet-3010e46b47c36a25f44c80b31daaf887ab1d8de5.tar.gz enet-3010e46b47c36a25f44c80b31daaf887ab1d8de5.zip |
Initial revision
Diffstat (limited to 'callbacks.c')
-rw-r--r-- | callbacks.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/callbacks.c b/callbacks.c new file mode 100644 index 0000000..7f960af --- /dev/null +++ b/callbacks.c @@ -0,0 +1,53 @@ +/** + @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 (); +} + |