diff options
| author | Juan Linietsky | 2016-08-14 13:29:25 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2016-08-14 14:07:23 -0300 |
| commit | c21aae65b6bd85cecfa0efa484016787fc82f799 (patch) | |
| tree | 06baba231f31e1d2809f61b0ff7d8e73434595d1 /modules/enet/callbacks.c | |
| parent | b9e8bddf19a277b6a5302ec1e12ace780ed86b12 (diff) | |
| download | godot-c21aae65b6bd85cecfa0efa484016787fc82f799.tar.gz godot-c21aae65b6bd85cecfa0efa484016787fc82f799.tar.zst godot-c21aae65b6bd85cecfa0efa484016787fc82f799.zip | |
Diffstat (limited to 'modules/enet/callbacks.c')
| -rw-r--r-- | modules/enet/callbacks.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/modules/enet/callbacks.c b/modules/enet/callbacks.c new file mode 100644 index 000000000..b3990af1f --- /dev/null +++ b/modules/enet/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, abort }; + +int +enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits) +{ + if (version < ENET_VERSION_CREATE (1, 3, 0)) + 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 -> no_memory != NULL) + callbacks.no_memory = inits -> no_memory; + + return enet_initialize (); +} + +ENetVersion +enet_linked_version (void) +{ + return ENET_VERSION; +} + +void * +enet_malloc (size_t size) +{ + void * memory = callbacks.malloc (size); + + if (memory == NULL) + callbacks.no_memory (); + + return memory; +} + +void +enet_free (void * memory) +{ + callbacks.free (memory); +} + |
