1 /** 2 @file callbacks.c 3 @brief ENet callback functions 4 */ 5 #define ENET_BUILDING_LIB 1 6 #include "enet/enet.h" 7 8 static ENetCallbacks callbacks = { malloc, free, abort }; 9 10 int enet_initialize_with_callbacks(ENetVersion version,const ENetCallbacks * inits)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 31 ENetVersion enet_linked_version(void)32enet_linked_version (void) 33 { 34 return ENET_VERSION; 35 } 36 37 void * enet_malloc(size_t size)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 48 void enet_free(void * memory)49enet_free (void * memory) 50 { 51 callbacks.free (memory); 52 } 53 54