1/**
2 @file callbacks.c
3 @brief ENet callback functions
4*/
5#define ENET_BUILDING_LIB 1
6#include "enet/enet.h"
7
8static ENetCallbacks callbacks = { malloc, free, abort };
9
10int
11enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits)
12{
13 if (version < ENET_VERSION_CREATE (1, 3, 0))
14 return -1;
15
16 if (inits -> malloc != NULL || inits -> free != NULL)
17 {
18 if (inits -> malloc == NULL || inits -> free == NULL)
19 return -1;
20
21 callbacks.malloc = inits -> malloc;
22 callbacks.free = inits -> free;
23 }
24
25 if (inits -> no_memory != NULL)
26 callbacks.no_memory = inits -> no_memory;
27
28 return enet_initialize ();
29}
30
31ENetVersion
32enet_linked_version (void)
33{
34 return ENET_VERSION;
35}
36
37void *
38enet_malloc (size_t size)
39{
40 void * memory = callbacks.malloc (size);
41
42 if (memory == NULL)
43 callbacks.no_memory ();
44
45 return memory;
46}
47
48void
49enet_free (void * memory)
50{
51 callbacks.free (memory);
52}
53
54