diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2016-10-10 19:50:51 +0200 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2016-10-15 11:50:39 +0200 |
| commit | c31ad71f10f68705a456b4257c084d4008c34370 (patch) | |
| tree | 661ac3c986d69876eda544a8292949e924e819ad /thirdparty/enet/callbacks.c | |
| parent | 16ba665db6bbd7f15aadc35fda87d69d0b220bf7 (diff) | |
| download | redot-engine-c31ad71f10f68705a456b4257c084d4008c34370.tar.gz | |
enet: Split enet thirdparty files and allow unbundling
Building against shared libraries only implemented for Linux X11 so far.
TODO: Document Godot's modifications of upstream enet.
Diffstat (limited to 'thirdparty/enet/callbacks.c')
| -rw-r--r-- | thirdparty/enet/callbacks.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/thirdparty/enet/callbacks.c b/thirdparty/enet/callbacks.c new file mode 100644 index 0000000000..b3990af1fb --- /dev/null +++ b/thirdparty/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); +} + |
